Docker CLI
概述
参考:
Syntax(语法)
docker [OPTIONS] COMMAND [ARG…]
OPTIONS
- –config=~/.docker # Location of client config files # 客户端配置文件的位置
- -D, –debug=false # Enable debug mode # 启用 Debug 调试模式
- -H, –host=[] # Daemon socket(s) to connectto # 守护进程的套接字(Socket)连接
- -l, –log-level=info # Set the logging level # 设置日志级别
- –tls=false # Use TLS; implied by–tlsverify #
- –tlscacert=~/.docker/ca.pem # Trust certs signed only by this CA # 信任证书签名 CA
- –tlscert=~/.docker/cert.pem # Path to TLS certificate file # TLS 证书文件路径
- –tlskey=~/.docker/key.pem # Path to TLS key file # TLS 密钥文件路径
- –tlsverify=false # Use TLS and verify theremote # 使用 TLS 验证远程
Management Commands
container - 容器管理
详见 container
attach cp diff export kill ls port rename rm start stop unpause wait
commit create exec inspect logs pause prune restart run stats top update
对容器的操作说明:docker 的 container 相关操作命令有一些关于如何进入容器操作的命令
其更本思想为:
- 连接标准输入,输入到 host 上的内容同样输入到 container 中
- 连接标准输出,输出到 container 中的同样输出到 host 上
- 可以分配一个终端(shell)给 container,以便操作更便捷
注意:有的 Container 在启动的时候,会自带命令去执行一些操作,该操作会自动输出一些内容,当连接到该 Container 的标准输入和输出上之后,可能没法对其进行输入操作,因为该 Container 正在其前台运行某程序(就好像平时用 linux 的 tailf 命令似的)(有的程序有输出内容,有的程序没有输出内容),前台运行程序的时候,是没法输入的。
docker container [OPTIONS]
EXAMPLE
- docker container prune -a # 清理所有已经停止的 container
image - 镜像的管理命令
详见 image
network - 网络的管理命令
详见 network
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
system - docker 系统管理
docker system COMMAND
COMMAND:
- df # 显示 docker 系统的磁盘使用情况,效果如下:
~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 11 10 1.043GB 96.12MB (9%)
Containers 34 18 4.588kB 2.294kB (50%)
Local Volumes 2 2 152.8MB 0B (0%)
Build Cache 0 0 0B 0B
- events # Get real time events from the server
- info # 等同于 docker info 命令
- prune # 删除未使用的数据。删除内容如下
~]# docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
volume - 管理 docker 的卷
详见 《[Docker 存储](/docs/10.云原生/2.2.实现容器的工具/Docker/Docker%20 存储.md 存储.md)》
build - 通过 Dockerfile 定制镜像
docker build [OPTIONS] PATH # 使用 dockerfile 文件自动创建镜像
注:PATH 是 build context 创建环境的位置,从创建环境中搜索 Dockerfile 文件来使用。PATH 也可以是一个 URL,通过网上下载镜像。
OPTIONS:
- -t <NAME> # 自己定义一个创建完成后的镜像名 NAME
- -f <NAME> # 指定使用创建环境中哪个 NAME 文件作为 Dockerfile,默认使用文件名为 Dockerfile 的文件
- –no-cache # 创建镜像时不使用缓存
EXAMPLE
- docker build ./ # 从当前目录下查找名为 Dockerfile 的文件进行 Image 的创建
- docker build -t ubuntu-vi -f test /dockerfile/ # 使用 dockerfile 目录,并使用该目录中的 test 文件作为 dockerfile 文件,创建一个名为 ubuntu-vi 的 Image
COMMANDS
attach - 当前 shell 下 attach(连接)到指定运行中的镜像
Attach local standard input, output, and error streams to a running container # 把本地终端上的标准输入、输出和错误数据流连接到一个运行中的容器(即从一个运行中的容器剥离了其终端,再重新连接到其终端)
commit - 从容器的变化中创建一个新的 image。提交当前容器为新的镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
使用 docker commit ContainerName NewName 命令创建新镜像
(ContainerName 为正在运行的容器名 NewName 为需要创建的镜像名,自己定)
每一次 commit 就相当于把当前的可写入层变成 image 的一层
cp - 从容器中拷贝指定文件或者目录到宿主机中
create - 创建一个新的容器,同 run 但不启动容器
diff - Inspect changes on a container’s filesystem 查看 docker 容器变化
events - Get real time events from the server 从 docker 服务获取容器实时事件
exec - 在运行中的容器上执行命令
export - 导出容器的文件系统为一个 tar 归档文件(对应 import)
history - 展示一个镜像形成历史
docker history [OPTIONS] IMAGE
OPTIONS
- –no-trunc # 不要截断输出 i.e.每列显示的内容都是完整内容,不会被截断
EXAMPLE
images - 列出系统当前镜像
OPTIONS
- –all , -a # Show all images (default hides intermediate images)
- –digests # Show digests
- –filter , -f # Filter output based on conditions provided
- –format # Pretty-print images using a Go template
- 可用的 Go 模板占位符详见:https://docs.docker.com/engine/reference/commandline/images/#format-the-output
- –no-trunc # Don’t truncate output
- –quiet , -q # Only show numeric IDs
EXAMPLE
- docker images # 查看本地 images,效果如图

import - Import the contents from a tarball to create a filesystem image 从 tar 包中的内容创建一个新的文件系统映像(对应 export)
info - 与 docker system info 命令效果相同
inspect - 返回有关容器或镜像的底层信息
显示 docker 所能管理的所有 object 的详细信息,object 包括 image,container,network 等等
docker [OBJECT] inspect [OPTIONS]
OPTIONS
EXAMPLE
- 获取 snmp_exporter 容器 merged 目录的绝对路径
- docker inspect snmp_exporter | jq .[0].GraphDriver.Data.MergedDir | tr -d “”"
- docker inspect snmp_exporter –format=’{{.GraphDriver.Data.MergedDir}}’
- 获取容器的 PID
docker inspect nginx --format='{{.State.Pid}}'
kill - kill 一个运行中的容器
load - 从 tar 包 或标准输入中加载一个镜像(对应 save)
docker load [OPTIONS]FILE
OPTIONS
- -i # 从 tar 存档文件读取,而不是 STDIN
EXAMPLE
- docker load -i kubernetes.tar
login - 注册或者登录到一个 Docker Registry
logout - 从当前 Docker Registry 登出
logs - 获取容器得日志
docker logs [OPTIONS] CONTAINER
OPTIONS
- –details # Show extra details provided to logs
- -f, –follow# 跟踪日志的输出
- –since string Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
- -n, –tail STRING# 从日志末尾开始显示日志的指定行数。
默认值:all - -t, –timestamps # 在每行日志行首显示时间戳
- –until string # Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
pause - 暂停一个 Container 中的所有进程
port - 查看映射端口对应的容器内部源端口
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
EXAMPLE
- docker port nginx1 # 查看名为 nginx1 这个 Container 的端口映射情况
ps - 列出容器
详见:docker ps 命令,可以查看很多容器信息
pull - 从 Registry 拉取指定镜像或者镜像仓库
docker pull [REGISTRY][:Port]/[NAMESPACE/]<NAME>:[TAG]
如果不加 registry,则默认从 hub.docker.com 拉取 image;如果不设置 namespace,则默认从指定的 registry 中的顶层仓库拉取镜像,如果使用了 namespace,则从该用户仓库拉取镜像;如果不指定 TAG,则默认拉取 lastest 版的 image
EXAMPLE
- docker pull quay.io/coreos/flannel
push - 推送指定镜像或者库镜像至 docker 源服务器
rename - 重命名容器
restart - 重启运行的容器
rm - 移除一个或者多个容器
EXAMPLE
- docker rm
docker ps -a | grep "Exited" | awk '{print $NF}'# 移除所以已经停止的容器
rmi - 移除一个或多个镜像
Notes: 无容器使用该镜像才可以删除,否则需要删除相关容器才可以继续或者-f 强制删除
run - 创建一个新的容器并运行一个命令
save - 保存一个或多个镜像为一个 tar 包(对应 load)
docker save [OPTIONS] Image1 Image2 … ImageN /PATH/FILE
OPTIONS
- -o # save 的时候写入文件,而不是 STDOUT
EXAMPLE
- docker save k8s.gcr.io/kube-proxy:v1.12.1 -o kubernetes.tar # 保存 k8s.gcr.io/kube-proxy:v1.12.1 这个 image 到 kubernetes.tar 这个文件中
- docker save -o XXXX.tar $(docker images | awk ‘{print $1,$2}’ OFS=":" | awk ‘NR!=1{print}’) # 保存全部镜像到 XXX.tar 文件中
search - 在 dockerhub 中搜索镜像
docker search [OPTIONS] TERM
EXAMPLE
docker search centos # 搜索所有 centos 的 docker 镜像

start - 启动容器
stats - 显示实时的容器资源使用情况统计流
命令用法详见:容器状态查看命令
stop - 停止容器
tag - 在一个 repostiory 中标记一个 image
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
top - 查看容器中运行的进程信息
EXAMPLE
docker top prometheus # 查看 prometheus 这个 container 运行的程序,该信息的格式为 ps 命令所输出的内容
unpause - 取消暂停容器
wait - 截取容器停止时的退出状态值
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.