牛牛逼逼叉叉
菜单

深入浅出Docker(二):Docker命令行探秘

2015年01月27日,分类《系统运维》,作者:
博客捐助

133947or7x5rv7527cvsex

1. Docker命令行

Docker官方为了让用户快速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的使用方法。但是由于Docker技术的快速发展,此交互式教程已经无法满足Docker用户的实际使用需求,所以让我们一起开始一次真正的命令行学习之旅。首先,Docker的命令清单可以通过运行docker ,或者 docker help 命令得到:

$ sudo docker

222427murgvhuhnjdu7uhn

在Docker容器技术不断演化的过程中,Docker的子命令已经达到34个之多,其中核心子命令(例如:run)还会有复杂的参数配置。笔者通过结合功能和应用场景方面的考虑,把命令行划分为4个部分,方便我们快速概览Docker命令行的组成结构:

功能划分

命令

环境信息相关

  1. info
  2. version

系统运维相关

  1. attach
  2. build
  3. commit
  4. cp
  5. diff
  6. export
  7. images
  8. import / save / load
  9. inspect
  10. kill
  11. port
  12. pause / unpause
  13. ps
  14. rm
  15. rmi
  16. run
  17. start / stop / restart
  18. tag
  19. top
  20. wait

日志信息相关

  1. events
  2. history
  3. logs

Docker Hub服务相关

  1. login
  2. pull / push
  3. search

1.1 参数约定

单个字符的参数可以放在一起组合配置,例如

  1. docker run t i name test busybox sh

可以用这样的方式等同:

  1. docker run ti name test busybox sh

1.2 Boolean

Boolean参数形式如: -d=false。注意,当你声明这个Boolean参数时,比如 docker run -d=true,它将直接把启动的Container挂起放在后台运行。

1.3 字符串和数字

参数如 –name=“” 定义一个字符串,它仅能被定义一次。同类型的如-c=0 定义一个数字,它也只能被定义一次。

1.4 后台进程

Docker后台进程是一个常驻后台的系统进程,值得注意的是Docker使用同一个文件来支持客户端和后台进程,其中角色切换通过-d来实现。这个后台进程是用来管理容器的,使用Docker –help可以得到更详细的功能参数配置, 如下图:

222428akvpqdmdev4gnzdp

Docker后台进程参数清单如下表:

参数

解释

–api-enable-cors=false 开放远程API调用的 CORS 头信息。这个接口开关对想进行二次开发的上层应用提供了支持。
-b, –bridge=”” 挂载已经存在的网桥设备到 Docker 容器里。注意,使用 none 可以停用容器里的网络。
–bip=”” 使用 CIDR 地址来设定网络桥的 IP。注意,此参数和 -b 不能一起使用。
-D, –debug=false 开启Debug模式。例如:docker -d -D
-d, –daemon=false 开启Daemon模式。
–dns=[] 强制容器使用DNS服务器。例如: docker -d –dns 8.8.8.8
–dns-search=[] 强制容器使用指定的DNS搜索域名。例如: docker -d –dns-search example.com
-e, –exec-driver=”native” 强制容器使用指定的运行时驱动。例如:docker -d -e lxc
-G, –group=”docker” 在后台运行模式下,赋予指定的Group到相应的unix socket上。注意,当此参数 –group 赋予空字符串时,将去除组信息。
-g, –graph=”/var/lib/docker” 配置Docker运行时根目录
-H, –host=[] 在后台模式下指定socket绑定,可以绑定一个或多个 tcp://host:port, unix:///path/to/socket, fd://* 或 fd://socketfd。例如:

$ docker -H tcp://0.0.0.0:2375 ps 或者

$ export DOCKER_HOST=”tcp://0.0.0.0:2375″
$ docker ps

–icc=true 启用内联容器的通信。
–ip=”0.0.0.0″ 容器绑定IP时使用的默认IP地址
–ip-forward=true 启动容器的 net.ipv4.ip_forward
–iptables=true 启动Docker容器自定义的iptable规则
–mtu=0 设置容器网络的MTU值,如果没有这个参数,选用默认 route MTU,如果没有默认route,就设置成常量值 1500。
-p, –pidfile=”/var/run/docker.pid” 后台进程PID文件路径。
-r, –restart=true 重启之前运行中的容器
-s, –storage-driver=”” 强制容器运行时使用指定的存储驱动,例如,指定使用devicemapper, 可以这样:

docker -d -s devicemapper

–selinux-enabled=false 启用selinux支持
–storage-opt=[] 配置存储驱动的参数
–tls=false 启动TLS认证开关
–tlscacert=”/Users/dxiao/.docker/ca.pem” 通过CA认证过的的certificate文件路径
–tlscert=”/Users/dxiao/.docker/cert.pem” TLS的certificate文件路径
–tlskey=”/Users/dxiao/.docker/key.pem” TLS的key文件路径
–tlsverify=false 使用TLS并做后台进程与客户端通讯的验证
-v, –version=false 显示版本信息

注意,其中带有[] 的启动参数可以指定多次,例如

  1. $ docker run a stdin a stdout a stderr i t ubuntu /bin/bash


发表评论

电子邮件地址不会被公开。 必填项已用*标注

【上一篇】

深入浅出Docker(一):Docker核心技术预览

【下一篇】

网页响应式设计的现状与趋势