zoukankan      html  css  js  c++  java
  • docker基本指令

    Run

    基于镜像新建一个容器并运行

    
    # docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    docker run -it ubuntu:18.04 /bin/bash
    	-t 启动一个伪终端
    	-i 打开容器的标准输入
    	ubuntu:18.04 镜像
    	/bin/bash 在镜像中执行的命令
    	
    

    其他常用参数

    	-d 后台任务运行
    	-p 8081(主机):8081 建立主机与容器的端口映射
    	-v $PWD/website:/var/www/html/website 将文件夹挂在到容器内部 本地:容器路径:rw(ro)
    	
    	--name hahah 给新容器命名
    	--rm 退出之后就删除容器
    	
    	--log-driver="syslog" # 设置日志驱动, 默认json-file
    	--restart=always # 容器自动重启 --restart=on-failure:5
    	
    	-e 传递环境变量
    

    管理

    Container

    docker stop containerId/name # 暂停容器
    docker start containerId/name # 启动容器
    docker kill CONTAINER # 发送SIGKILL
    

    查看容器

    docker container ls # 查看现在正常运行的容器
    	-a  # 查看所有容器, 包括已经停止的容器
    

    删除容器

    docker rm CONTARINER
    
    # 删除全部容器
    docker rm `docker ps -a -q`
    

    images

    镜像, 镜像存储位置 /var/lib/docker/docker

    docker images # 查看镜像列表
    # 拉取用户镜像需要带上用户名 gilf/httpd , 顶层镜像只需镜像名 ubuntu
    
    # 删除镜像
    docker rmi IMAGE 
    # 删除全部镜像
    docker rmi `docker images -a -q`
    
    docker pull NAME[:TAG|@DIGEST] # 拉取镜像
    
    docker search NAME # 查看所有Docker Hub上的公共镜像
    

    提交容器的变更到镜像

    docker commit $容器名 $仓库镜像名[:Tag]
    	-m 提交消息
    	-a 作者名称
    
    docker commit 4aab3ce3cb76 jamtur01/apache2
    
    
    docker push [OPTIONS] NAME[:TAG]
    # 将变更推送到hub上
    

    构建镜像

    1. Dockfile
    # Version: 0.0.1
    FROM ubuntu:14.04 # 每个Dockerfile 第一条指令必须是FROM, 基础镜像
    MAINTAINER James Turnbull "james@example.com" 
    RUN apt-get update && apt-get install -y nginx # Run 默认用 /bin/sh -c 执行
    RUN echo 'Hi, I am in your container'  
     >/usr/share/nginx/html/index.html
    EXPOSE 80
    
    ###
    使用 exce格式的run命令
    RUN ["apt-get", " install", "-y" "nginx"]
    

    dockerfile
    2. build

    # 进入Dockerfile所在的文件夹
    docker build -t="gilf/httpd:v1"
    	-t 为新镜像设置仓库和名称, 版本可以省略(默认latest)
    	-f 可以指定dockerfile文件
    	
    # 使用远程github的 dockerfile, 
    docker build -t="gilf/httpd:v1" 
    	git@github.com:gilf/httpd-dir
    	
    docker build --no-cache
    # 不使用构建过程中的缓存镜像
    
    # 查看构建历史镜像层
    docker history $镜像名称
    
    

    交互

    attach

    docker attch container # 将当前终端的标准io连上容器的标准io
    
    

    exec
    在容器内部额外启动新进程, 执行命令

    docker exec [options] CONTAINER COMMANDS
    	-d # 后台任务
    	-i -t # 交互任务
    

    查看日志

    docker logs # 查看容器内部的日志 
    # docker logs 显示的内容包含 STOUT 和 STDERR
    #	--tail 10 # 获取末尾10行
    #	-f # 关注最新的日志
    

    查看容器

    # 查看容器内部进程
    docker top CONTAINER
    
    # 查看各个容器的CPU, 内存, 网络I/O的使用情况
    docker starts CONTAINER1 CONTAINER2 ...
    
    # 检查容器配置信息
    docker inspect CONTAINER
    
    # 查看容器映射的端口
    docker port $容器 80
    

    文件转移

    # 从容器中拷贝文件到本地,   或者拷贝文件到容器中
    docker cp CONTAINER:SRC_PATH DEST_PATH
    # docker cp bob:/home/world.md .
    # docker cp ./hello.md bob:/home/
    
    

    其他

    登陆 Registry 服务器

    docker login 
    
    docker logout
    # $HOME/.docker/config.json 登入信息
    

    Referrence

    • 第一本Docker书
  • 相关阅读:
    Cocos2d-x 3.2:定时器的使用和原理探究(2)
    Cocos2d-x 3.2:定时器的使用和原理探究(1)
    c++初学(电梯实验加强版)
    中序线索化二叉树
    c++初学(电梯实验)
    二叉树表达式计算(2)
    输入计算表达式,将他们存在string【】中
    函数修改二维数组的值
    单件模式以及内存释放
    迷宫(栈)不能求最短路径
  • 原文地址:https://www.cnblogs.com/Gilfoyle/p/15490215.html
Copyright © 2011-2022 走看看