23121321 发表于 2016-4-28 09:49:24

Docker配置指南系列(二):指令集(一)

二、Docker指令集
#由于有一部分指令用到了dockerfile,所以不懂的话,请首先查看dockerfile配置指南一节
attach:    docker attach 允许进入或者直接操作容器
    语法:docker attach CONTAINER
    配置指令:
      --help 查看帮助
      --no-stdin=false   
      --sig-proxy=true   
    用法示例:
       # ID=$(docker run -d centos /usr/bin/top -b)
       # docker attach $ID
      top - 06:10:43 up 66 days,5:00,0 users,load average: 0.27, 0.08, 0.10
      Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
      %Cpu(s):3.7 us,3.7 sy,0.0 ni, 88.0 id,4.7 wa,0.0 hi,0.0 si,0.0 st
      KiB Mem : 16123532 total,1002016 free,9646844 used,5474672 buff/cache
      KiB Swap: 32766968 total, 32103200 free,   663768 used.6010068 avail Mem
          PID USER      PRNI    VIRT    RES    SHR S%CPU %MEM   TIME+ COMMAND
            1 root      20   0   51692   1904   1456 R   0.00.0   0:00.01 top
build:    从指定路径(URL,dockerfile)创建一个新的镜像
    语法:docker build PATH | URL | -
    配置指令:
      -f --file=PATH/Dockerfile    #指定dockerfile文件路径,dockerfile语法和内容,请参考Docker配置指南(三):Dockerfile
      --rm=true|false    #默认为true,在构建完成后,删除依赖中间容器
      --force-rm=true|false    #默认为false,如果为true,构建无论成功都会强制删除中间容器
      --no-cache=true|false    #创建镜像时默认不使用缓存
      --help    #查看帮助
      --pull=true|false    #默认为false,为true则总是试图获取最新的镜像
      -q --quiet=true|false    #默认为false,为true时不显示详细输出
      -t, --tag=""    #构建成功后,新的镜像会携带此标记
      -m, --memory=MEMORY    #指定使用物理内存上限
      --memory-swap=MEMORY-SWAP    #含swap的总内存上限,-1不使用swap
      -c, --cpu-shares=0    #配置docker容器cpu的权重,默认为0,权重相同。有关资源分配方面的资料,感兴趣的可以自己查看docker的资源分配原理(基于Cgroup)。
      --cpu-period=0    #指定容器对CPU的使用要在多长时间内做一次重新分配,和--cpu-quota一样,是一个完全公平的调度方法
            --cpu-quota=0    #指定在这个周期内,最多可以有多少时间用来跑这个容器,同--cpu-shares不同,这种配置比较固定,容器使用的CPU资源是不会超过这个值的,没有弹性。
      --cpuset-cpus=CPUSET-CPUS    #允许使用的CPU编号(0-3或0,1两种写法)
      --cpuset-mems=CPUSET-MEMS    #只在NUMA系统有效
      --cgroup-parent=CGROUP-PARENT    #使用已创建的容器cgroup路径,如果不存在,则会新创建
    用法示例:docker build Dockerfile_PATH | URL
commit:   提交已改动的镜像
    语法:[-a|--author[=AUTHOR]] [--help] [-c|--change[= []]] [-m|--message[=MESSAGE]] [-p|--pause*[=*true]] CONTAINER ]
    配置指令:
      --help    #查看帮助
      -a --author=""    #作者
      -c --change=[]    #在提交镜像时使用指定的dockerfile指令,支持类型有:CMD|ENTRYPOINT|ENV|EXPOSE|ONBUILD|USER|VOLUME|WORKDIR
      -m --message=""    #提交说明信息
      -p--pause==true|false    #默认为true,在commit的时候暂停服务
    用法示例:
      docker commit -a 'user@domain.com' -m 'some massages' CONTAINER_ID REPOSITORY:TAG
cp:    将文件或目录从容器内拷贝到宿主机,使用"-"可以将数据输出为一个tar文件
    语法:docker cp [--help] CONTAINER:PATH HOSTDIR|-
    配置指令:
      --help    #查看帮助
    用法示例:
      docker cp CONTAINER_ID:PATH HOSTDIRPATH
create:    创建一个新的容器
    语法: docker    create   [-a|--attach[=[]]]   [--add-host[=[]]]   [--blkio-weight[=]]   [-c|--cpu-shares[=0]]   [--cap-add[=[]]]   [--cap-drop[=[]]]   [--cidfile[=CIDFILE]]
       [--cpu-period[=0]][--cpuset-cpus[=CPUSET-CPUS]][--cpuset-mems[=CPUSET-MEMS]][--cpu-quota[=0]][--device[=[]]][--dns-search[=[]]][--dns[=[]]][-e|--env[=[]]]   [--entry-
       point[=ENTRYPOINT]]   [--env-file[=[]]]   [--expose[=[]]]   [-h|--hostname[=HOSTNAME]]   [--help][-i|--interactive[=false]][--ipc[=IPC]][-l|--label[=[]]][--label-file[=[]]]
       [--link[=[]]][--lxc-conf[=[]]]   [--log-driver[=[]]]   [--log-opt[=[]]]   [-m|--memory[=MEMORY]]   [--memory-swap[=MEMORY-SWAP]]   [--mac-address[=MAC-ADDRESS]]   [--name[=NAME]]
       [--net[="bridge"]]    [--oom-kill-disable[=false]]   [-P|--publish-all[=false]]   [-p|--publish[=[]]]   [--pid[=[]]]   [--uts[=[]]]   [--privileged[=false]]   [--read-only[=false]]
       [--restart[=RESTART]] [--security-opt[=[]]] [-t|--tty[=false]] [-u|--user[=USER]] [-v|--volume[=[]]] [--volumes-from[=[]]] [-w|--workdir[=WORKDIR]][--cgroup-parent[=CGROUP-PATH]]
       IMAGE
    配置指令:
      -a, --attach=[]    #附加到stdin,stdout或stderr
      --add-host=[]    #自定义一个主机到IP的映射
      --blkio-weight=0    #block IO权重,可配置范围是10-1000
      -c, --cpu-shares=0    #CPU相对权重
      --cap-add=[]    #添加Linux capabilities
      --cap-drop=[]    #去除linux capabilities
      --cidfile=""    #将container id写入到文件
      --cgroup-parent    --cpu-peroid=0    --cpuset-cpus=""    --cpuset-mems=""    -cpu-quota=0   -m, --memory=""--memory-swap=""    #这几个选项在build指令中已经有介绍
      --device=[]    #为容器添加一个主机设备 (e.g. --device=/dev/sdc:/dev/xvdc:rwm)
      -dns-search=[]    #设置自定义DNS搜索域 (如果不想使用此功能,使用此配置: --dns-search=. )
      --dns=[]    #设置DNS服务器
      -e, --env=[]    #设置环境变量
      --entrypoint=""    #请参考Docker配置指南(三):Dockerfile
      --env-file=[]    #在以行分隔的文件中读取变量
      --expose=[]    #暴露一个或范围内的端口
      -h, --hostname=""    #设置容器的主机名
      --help    #查看帮助
      -i, --interactive=true|false    #默认为false,即使没有连接也保持标准输入开启
      --ipc=""    #默认是为容器创建一个私有 的命令空间;
            ’container:<name|id>’:    复用其它容器的共享内存、消息队列和信号
            ’host’:    在容器内使用主机的共享内存、消息队列和信号;注意:主机模式将会给容器完全访问共享内存的权限,因此被认为是不安全的
      -l, --label=[]    #添加一个键值对格式的标签
      --label-file=[]    #从一个文件中读取标签,每一个EOL分隔一个标签
      --link=[]    #以别名或者ID的方式添加一个到其它容器的链接
      --lxc-conf=[]    #lxc自定义配置,如--lxc-conf=
      --log-driver="|json-file|syslog|journald|none"    #设置日志驱动,默认为json-file,docker logs命令只支持json-file日志驱动
      --log-opt=[]    #设置日志配置选项
      --mac-address=""    #设置MAC地址
      --name=""      #为容器分配一个名称
      --net="bridge"    #为容器配置网络模式,主要有以下几种模式:
            ’bridge’:    为容器创建一个新的桥接网络
            ’none’: 不为容器配置网络
            ’container:<name|id>’: 复用其它容器的网络
            ’host’:在容器内使用主机的网络堆栈,同样,这种主机模式将会给容器完全访问本地系统服务的权限,因此被认为是不安全的
      --oom-kill-disable=true|false    #一种linux的内存优化机制,当申请内存后使用时,发现空间不足,则会触发这种机制,大致以先进先出和其存活时长为判断依据,将这部分内存释放后再分配
      -P, --publish-all=true|false    #默认为false,发布所有端口暴露到主机上网络接口的随机端口
      -p, --publish=[]    #发布一个或多个容器的端口到主机上,格式为:ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | containerPort
      --pid=host    #设置容器PID模式,host是指在容器内使用主机的PID命名空间
      --uts=host    #设置容器UTS模式,host是指在容器内使用主机的UTS命名空间
      --privileged=true|false    #默认为false,给予此容器扩展权限
      --read-only=true|false    #默认为false,给予此容器只读权限
      --restart="no"    #当容器退出时重启策略(no, on-failure[:max-retry], always)
      --security-opt=[]    #安全配置
      -t, --tty=true|false    #默认为false,分配一个伪tty
      -u, --user=""    #用户名或是用户ID
      -v, --volume=[]    #绑定半挂载一个卷(例如, from the host: -v /host:/container, from Docker: -v /container)
      --volumes-from=[]    #从指定的容器挂载卷
      -w, --workdir=""    #指定容器工作目录
diff:    检查容器上文件系统的变化
    语法:docker diff [--help] CONTAINER
events:    从服务器获取实时消息
    语法:docker events [--help] [-f|--filter[=[]]] [--since[=SINCE]] [--until[=UNTIL]]
    配置指令:
      --help    #查看帮助
      -f --filter=[]    #指定过滤条件
      --since=""    #指定开始时间戳
      --until=""    #指定结束时间戳
exec:    在一个运行中的容器内执行命令
    语法:docker exec [-d|--detach[=false]] [--help] [-i|--interactive[=false]] [-t|--tty[=false]] [-u|--user[=USER]] CONTAINER COMMAND
    配置指令:
      -d --detach=true|false    #默认false,分离模式,在后台执行命令
      --help    #查看帮助
      -i, -interactive=true|false    #默认为false,即使没有连接也保持标准输入开启
      -t, --tty=true|false    #默认为false,分配一个伪tty
      -u, --user=""    #设置用户名或UID,也可以扩展配置GROUP或者GID,类似于:user:group
history:    查看镜像历史(创建,修改)
    语法:docker history [--help] [--no-trunc[=false]] [-q|--quiet[=false]] IMAGE
    配置指令:
      --help    #查看帮助
      -H --human=true|false    #默认为true,人性化显示
      --no-trunc=true|false    #默认为false,不要截断输出,配置为true会显示完整的镜像信息
      -q --quiet=true|false    #默认为false,配置为true时只显示ID信息
images:    列出所有镜像
    语法:docker images [--help] [-a|--all[=false]] [--digests[=false]] [-f|--filter[=[]]] [--no-trunc[=false]] [-q|--quiet[=false]]
    配置指令:
      -a, --all=true|false    #默认为false,默认只显示中间层镜像
      --digests=true|false    #默认为false,为true时显示摘要信息
      -f --filter=[]    #过滤输出条件,比如可以根据标签查找
      --help    #查看帮助
      --no-trunc=true|false    #默认为false,不要截断输出,配置为true会显示完整的镜像信息
      -q --quiet=true|false    #默认为false,配置为true时只显示ID信息
import:    从一个tar包创建镜像
    语法:docker import [-c|--change[= []]] [--help**] URL|- ]
    配置指令:
      -c=[]    #指定dockerfile配置指令,支持类型有"CMD|ENTRYPOINT|ENV|EXPOSE|ONBUILD|USER|VOLUME|WORKDIR"
    用法示例:
      docker import http://example.com/exampleimage.tgz example/imagerepo    #从一个远程地址导入
      cat exampleimage.tgz | docker import - example/imagelocal    #从一个本地文件导入
      tar -c . | docker import -c="ENV DEBUG true" exampleimagedir    #从一个本地目录导入,并传入dockerfile指令
info:    输出系统侧信息
    语法:docker info [--help]
inspect:    输出更底层的docker镜像或容器信息,返回的是一个json格式的字符串
    语法:docker inspect [--help] [-f|--format[=FORMAT]] CONTAINER|IMAGE
    配置指令:
      --help    #查看帮助
      -f, --format=""    #可以根据返回内容进行过滤,不过需要使用go语言格式
kill:    使用kill标记杀掉一个正在运行的容器,默认为SIGKILL
    语法:docker kill [--help] [-s|--signal[="KILL"]] CONTAINER
    配置指令:
      --help    #查看帮助
      -s, --signal="KILL"    #使用指定kill信号
load:    加载一个打包好的镜像
    语法:docker load [--help] [-i|--input[=INPUT]]
      --help    #查看帮助
      -i, --input=""    #从一个tar包中的档案信息读取
login:    注册或登录到一个docker仓库/注册中心
    语法:docker login [-e|--email[=EMAIL]] [--help] [-p|--password[=PASSWORD]] [-u|--username[=USERNAME]]
    配置指令:
      -e, --email=""    #邮箱
      --help    #查看帮助
      -p, --password=""    #用户名
      -u, --username=""    #密码
logout:    从一个docker仓库/注册中心登出
    语法:docker logout
logs:    取出一个容器的日志
    语法:docker logs [-f|--follow[=false]] [--help] [--since[=SINCE]] [-t|--timestamps[=false]] [--tail[="all"]] CONTAINER
    配置指令:
      --help    #查看帮助
      -f, --follow=true|false    #默认为false,跟踪日志输出
      --since=""    #显示从指定时间戳开始的日志
      -t, --timestamps=true|false    #默认为false,显示时间戳
      --tail="all"    #在日志尾部显示行数,默认为所有日志


页: [1]
查看完整版本: Docker配置指南系列(二):指令集(一)