Docker命令查询
1、基本语法
Docker命令有两大类:客户端命令和服务端命令,前者是主要的操作接口,后者用来启动Docker服务。
- 客户端命令:基本命令格式为
docker [OPTIONS] COMMAND [ARG...]。 - 服务端命令:基本命令格式为
dockerd [OPTIONS]。
可以通过man docker或docker help来查看这些命令,通过man docker-COMMAND或docker help COMMAND来查看这些命令的具体用法和支持的参数。
2、客户端命令
2.1、命令选项
客户端命令负责操作接口,支持如下命令选项:
-config="":指定客户端配置文件,默认为~/.docker。-context,-c:指定连接到服务进程时要使用的上下文名称(覆盖DOCKER_HOST环境变量和使用dockercontext use命令设置的默认上下文)。-D,-debug:是否使用debug模式。默认不开启。-H,-host=[]:指定命令对应Docker daemon的监听接口,可以为UNIX套接字(unix:///path/to/socket)、文件句柄(fd://socketfd)或TCP套接字(tcp://host\[:port]),默认为unix:///var/run/docker.sock。-l,-log-level "debug|info|warn|error|fatal":指定日志输出级别,默认为info。-tls=true|false:是否对Docker服务端启用TLS安全机制,默认为否。-tlscacert=/.docker/ca.pem:指定TLS可信CA的证书文件路径/.docker/ca.pem。-tlscert=/.docker/cert.pem:指定TLS公钥证书文件路径,默认为/.docker/cert.pem。-tlskey=/.docker/key.pem:指定TLS密钥文件路径,默认为/.docker/key.pem。-tlsverify=true|false:启用TLS校验,默认为否。
2.2、客户端管理命令
Docker客户端单独提供了一组管理命令,对某个资源集中进行管理,包括快照、配置、容器、镜像、网络、节点、插件、秘密内容、服务、服务栈、集群、系统、密钥和挂载卷等,如表所示。


2.3、客户端常用命令
除了针对某个资源的管理命令外,Docker也兼容了之前版本的做法,为一些常见操作提供了快捷命令,如表所示。


3、服务端命令选项
对于服务端,dockerd命令负责启动服务端主进程,支持如下命令选项:
-add-runtime=[]:注册新的OCI兼容的运行时,如dockerd--add-runtime runc=runc--add-runtimecustom=/usr/local/bin/my-runc。-allow-nondistributable-artifacts=[]:允许推送非分发内容到指定的仓库。-api-cors-header="":CORS头部域,默认不支持CORS,要允许任意的跨域访问,可以指定为"*"表示任意内容。-authorization-plugin="":载入指定的认证插件。-b,-bridge="":将容器挂载到一个已存在的网桥上。指定为none时则禁用容器的网络,与-bip选项互斥。-bip="":让动态创建的docker0网桥采用给定的CIDR地址,与-b选项互斥。-cgroup-parent="":指定cgroup的父组,默认fscgroup驱动为/docker,systemd cgroup驱动为system.slice。-cluster-store="":构成集群(如Swarm)时的集群键值数据库服务地址。-cluster-advertise="":构成集群时,自身的被访问地址,可以为host:port或interface:port。-cluster-store-opt="":构成集群时,键值数据库的配置选项。-config-file="/etc/docker/daemon.json":daemon的配置文件路径。-containerd="":containerd文件的路径。-data-root="":指定存放持久化数据的路径,默认为/var/lib/docker。-D,-debug=true|false:是否使用Debug模式,默认为false。-default-gateway="":容器的IPv4网关地址,必须在网桥的子网段内。-default-gateway-v6="":容器的IPv6网关地址。-default-address-pool[=DEFAULT-ADDRESS-POOL]:默认的地址池。-default-runtime="runc":指定默认的运行时插件,默认为runc。-default-ipc-mode="private|shareable":为新创建的容器指定IPC模式。-default-shm-size=64MiB:配置服务端的shm大小。-default-ulimit=[]:默认的ulimit值。-dns="":指定容器使用的DNS服务器地址。-dns-opt="":DNS选项。-dns-search=[]:DNS搜索域。-exec-opt=[]:运行时的执行选项。-exec-root="":容器执行状态文件的根路径,默认为/var/run/docker。-experimental="":启用Docker实验新特性。-fixed-cidr="":限定分配IPv4地址范围。-fixed-cidr-v6="":限定分配IPv6地址范围。-G,-group="":分配给UNIX套接字的组,默认为docker。-g,-graph="":Docker运行时的根路径,默认为/var/lib/docker。-H,-host=[]:指定命令对应daemon的监听接口,可以为UNIX套接字(unix:///path/to/socket)、文件句柄(fd://socketfd)或TCP套接字(tcp://host\[:port]),默认为unix:///var/run/docker.sock。-icc=true|false:是否启用容器间以及与daemon所在主机的通信,默认为true。-init:指定容器启动后的初始化进程,负责信号处理和子进程收割。-init-path:指定docker-init的路径。-insecure-registry=[]:允许访问给定的非安全仓库服务。-ip="":绑定容器端口时的默认IP地址,默认为0.0.0.0。-ip-forward=true|false:是否启动宿主机IP转发服务(net.ipv4.ip_forward),默认开启。注意,关闭该选项后将不对宿主机转发进行任何检查或修改。-ip-masq=true|false:是否进行地址伪装,用于容器访问外部网络,默认开启。-iptables=true|false:是否允许Docker添加iptables规则,默认为true。-ipv6=true|false:是否启用IPv6支持,默认关闭。-isolation="default":指定容器隔离的机制。-l,-log-level="debug|info|warn|error|fatal":指定日志输出级别。-label="[]":添加指定的键值对标注。-live-restore=false:支持运行中的容器在服务端重启后的恢复,默认关闭。-log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|s plunk|etwlogs|gcplogs|none":指定日志后端驱动,默认为json-file。-log-opt=[]:日志后端的选项。-mtu=VALUE:指定容器网络的mtu。-max-concurrent-downloads=3:最大并发下载数,默认为3。-max-concurrent-uploads=5:最大并发上传数,默认为3。-max-download-attempts[=5]:最大的下载重试次数。-node-generic-resources[=[]]:设置节点的通用资源,如GPU、IP地址或端口等。-p,-pidfile="":指定daemon的PID文件路径,默认为/var/run/docker.pid。-raw-logs:输出原始、未加色彩的日志信息。-registry-mirror=://:指定执行docker pull时使用的注册服务器镜像地址。-s,-storage-driver="":指定使用给定的存储后端。-seccomp-profile="":指定seccomp配置文件路径。-selinux-enabled=true|false:启用SELinux支持,默认关闭。-shutdown-timeout=15:服务端关闭的超时,默认为15s。-storage-opt=[]:驱动后端选项。-swarm-default-advertise-addr=IP|INTERFACE:Swarm服务广播用的网络地址和接口。-tls=true|false:是否对daemon启用TLS安全机制,默认为否。-tlscacert[=~/.docker/ca.pem]:TLS CA签名的可信证书文件路径。-tlscert[=~/.docker/cert.pem]:TLS可信证书文件路径。-tlskey[=~/.docker/key.pem]:TLS密钥文件路径。-tlsverify=true|false:启用TLS校验,默认为否。-userland-proxy=true|false:是否使用用户态代理来实现容器间和出容器的回环通信,默认为true。-userland-proxy-path="":用户态代理文件路径。-userns-remap=default|uid:gid|user:group|user|uid:指定容器的用户命名空间,默认是创建新的UID和GID映射到容器内的进程。
4、一张图总结Docker命令
