Docker常用命令¶
1. 容器生命周期¶
主要介绍容器的运行和进入操作
1.1 run 命令¶
定义:创建一个新的容器并运行一个命令
格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | --name="nginx-lb" |
为容器指定一个名称 |
| 2 | -d |
后台运行容器并返回容器 ID |
| 3 | -i |
以交互模式运行容器,通常与-t 同时使用 |
| 4 | -t |
为容器重新分配一个伪输入终端,通常与-i 同时使用 |
| 5 | -p |
端口映射,格式为<宿主机端口:容器端口> |
| 6 | -v |
给容器挂载存储卷,挂载到容器的某个目录 |
| 7 | --entrypoint="" |
覆盖 image 的入口点 |
| 8 | -e user="escape" |
设置环境变量 |
| 9 | --env-file=[] |
从指定文件读入环境变量 |
| 10 | -h "node1" |
指定容器的 hostname 属性 |
| 11 | --dns 8.8.8.8 |
指定容器使用的 DNS 服务器,默认和宿主一致 |
| 12 | --cpuset="0,1,2" |
绑定容器到指定 CPU 运行 |
| 13 | -m |
设置容器使用内存的最大值 |
| 14 | --net="bridge" |
指定容器的网络连接类型,支持 bridge/host/none/container 类型 |
| 15 | --link=[] |
添加链接到另一个容器 |
| 16 | --expose=[] |
开放一个端口或一组端口 |
| 17 | --add-host |
添加自定义主机到 IP 映射,会写入容器的 hosts 文件中 |
| 18 | --health-cmd |
运行检查运行状况的命令 |
| 19 | --ip |
指定容器的 IP 地址 |
| 20 | --mount |
将文件系统挂载附加到容器 |
| 21 | --rm |
退出时自动删除容器 |
| 22 | --restart |
重新启动容器退出时应用的策略 |
| 23 | --user |
以那个用户去运行容器 |
1.2 start/stop/restart 命令¶
启动:docker start [OPTIONS] CONTAINER [CONTAINER...]
停止:docker stop [OPTIONS] CONTAINER [CONTAINER...]
重启:docker restart [OPTIONS] CONTAINER [CONTAINER...]
| 编号 | 命令 | 解释说明 |
|---|---|---|
| 1 | docker start |
启动已经被停止的容器 |
| 2 | docker stop |
停止运行中的容器 |
| 3 | docker restart |
重启容器 |
1.3 kill 命令¶
定义:杀掉一个或多个运行中的容器
格式:docker kill [OPTIONS] CONTAINER [CONTAINER...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -s |
向容器发送一个信号 |
1.4 rm 命令¶
定义:删除一个或多少容器
格式:docker rm [OPTIONS] CONTAINER [CONTAINER...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -f |
通过 SIGKILL 信号强制删除一个运行中的容器 |
| 2 | -l |
移除容器间的网络连接,而非容器本身 |
| 3 | -v |
删除容器本身并删除与容器关联的卷 |
1.5 pause/unpause 命令¶
停止:docker pause [OPTIONS] CONTAINER [CONTAINER...]
恢复:docker unpause [OPTIONS] CONTAINER [CONTAINER...]
| 编号 | 命令 | 解释说明 |
|---|---|---|
| 1 | docker pause |
暂停容器中所有的进程 |
| 2 | docker unpause |
恢复容器中所有的进程 |
1.6 create 命令¶
定义:创建一个新的容器但不启动它
格式:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -w |
设置容器内的工作目录 |
| 2 | --mac-address |
设置容器的 MAC 地址 |
2. 容器基本操作¶
使用容器的日常操作基本需要使用命令
2.1 ps 命令¶
定义:列出容器
格式:docker ps [OPTIONS]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -a |
显示所有的容器,包括未运行的容器 |
| 2 | -q |
静默模式,只显示容器编号 |
| 3 | -f |
根据条件过滤显示的内容 |
| 4 | --format |
指定返回值的模板文件 |
| 5 | -l |
显示最近创建的容器 |
| 6 | -n |
列出最近创建的 n 个容器 |
| 7 | -s |
显示总的文件大小 |
| 8 | --no-trunc |
不截断输出 |
2.2 inspect 命令¶
定义:获取容器/镜像的元数据
格式:docker inspect [OPTIONS] NAME|ID [NAME|ID...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -f |
指定返回值的模板文件 |
| 2 | -s |
显示总的文件大小 |
| 3 | --type |
为指定类型返回 JSON |
2.3 exec 命令¶
定义:在运行的容器中执行命令
格式:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -d |
在后台运行 |
| 2 | -i |
即使没有附加也保持 STDIN 打开 |
| 3 | -t |
分配一个伪终端 |
| 4 | -e |
设置环境变量 |
| 5 | -u |
设置用户 |
| 6 | -w |
设置容器的工作目录 |
2.4 attach 命令¶
定义:连接到正在运行中的容器
格式:docker attach [OPTIONS] CONTAINER
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | --sig-proxy |
代理收到所有进程的信号,默认为 true |
2.5 logs 命令¶
定义:获取容器的日志
格式:docker logs [OPTIONS] CONTAINER
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -f |
跟踪日志输出 |
| 2 | -t |
显示时间戳 |
| 3 | --tail |
仅列出最新 N 条容器日志 |
| 4 | --since |
显示某个开始时间的所有日志 |
2.6 export 命令¶
定义:将文件系统作为一个 tar 归档文件导出到 STDOUT
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -o |
将输入内容写到文件 |
2.7 top 命令¶
定义:查看容器中运行的进程信息,支持 ps 命令参数
格式:docker top [OPTIONS] CONTAINER [ps OPTIONS]
2.8 stats 命令¶
定义:用来显示容器使用的系统资源
格式:docker stats [OPTIONS] [CONTAINER]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | --all |
Show all containers (default shows just running) |
| 2 | --format string |
Pretty-print images using a Go template |
| 3 | --no-stream |
Disable streaming stats and only pull the first result |
| 4 | --no-trunc |
Do not truncate output |
2.9 port 命令¶
定义:列出指定的容器的端口映射或查找将 PRIVATE_PORT NAT 公开
格式:docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
2.10 wait 命令¶
定义:阻塞运行直到容器停止,然后打印出它的退出代码
格式:docker wait [OPTIONS] CONTAINER [CONTAINER...]
2.11 events 命令¶
定义:可以帮助你实时获取 docker 的各种事件信息
格式:docker events [OPTIONS]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | --filter filter |
Filter output based on conditions provided |
| 2 | --format string |
Format the output using the given Go template |
| 3 | --since string |
Show all events created since timestamp |
| 4 | --until string |
Stream events until this timestamp |
2.12 update 命令¶
定义:不用重新部署服务来调整镜像配置
格式:docker update [OPTIONS] CONTAINER [CONTAINER...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | --cpus decimal |
Number of CPUs |
| 2 | --memory bytes |
Memory limit |
| 3 | --restart string |
Restart policy to apply when a container exits |
| 4 | --pids-limit int |
Tune container pids limit (set -1 for unlimited) |
3. 容器文件系统¶
排错和查看容器的命令
3.1 commit 命令¶
定义:从容器创建一个新的镜像
格式:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -a |
提交的镜像作者 |
| 2 | -c |
使用 Dockerfile 指令来创建镜像 |
| 3 | -m |
提交时的说明文字 |
| 4 | -p |
在 commit 时,将容器暂停 |
3.2 diff 命令¶
定义:检查容器里文件结构的更改
格式:docker diff [OPTIONS] CONTAINER
3.3 cp 命令¶
定义:用于容器与主机之间的数据拷贝
格式:docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
格式:docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -a |
存档模式 |
| 2 | -L |
保持源目标中的链接 |
4. 镜像仓库使用¶
上传或者下载镜像的命令和操作
4.1 login/logout 命令¶
登录:docker login [OPTIONS] [SERVER]
退出:docker logout [OPTIONS] [SERVER]
| 编号 | 命令 | 解释说明 |
|---|---|---|
| 1 | docker login |
登陆到一个 Docker 镜像仓库 |
| 2 | docker logout |
登出到一个 Docker 镜像仓库 |
4.2 pull 命令¶
定义:从镜像仓库中拉取或者更新指定镜像
格式:docker pull [OPTIONS] NAME[:TAG|@DIGEST]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -a |
拉取所有 tagged 镜像 |
| 2 | --disable-content-trust |
忽略镜像的校验,默认开启 |
4.3 push 命令¶
定义:将本地的镜像上传到镜像仓库
格式:docker push [OPTIONS] NAME[:TAG]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | --disable-content-trust |
忽略镜像的校验,默认开启 |
4.4 search 命令¶
定义:从 Docker Hub 查找镜像
格式:docker search [OPTIONS] TERM
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | --automated |
只列出 automated build 类型的镜像 |
| 2 | --no-trunc |
显示完整的镜像描述 |
| 3 | -s |
列出收藏数不小于指定值的镜像 |
4.5 load/save 命令¶
定义:可以导入导出本地镜像
格式:docker load [OPTIONS]
格式: docker save [OPTIONS] IMAGE [IMAGE...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | load |
可以把镜像从 tar 文件导入到 docker 中 |
| 2 | save |
把一个镜像保存到 tar 文件中 |
5. 本地镜像管理¶
更好的管理我们本地的镜像文件
5.1 images 命令¶
定义:列出本地镜像
格式:docker images [OPTIONS] [REPOSITORY[:TAG]]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -a |
列出本地所有的镜像 |
| 2 | ---digests |
显示镜像的摘要信息 |
| 3 | -f |
显示满足条件的镜像 |
| 4 | --format |
指定返回值的模板文件 |
| 5 | --no-trunc |
显示完整的镜像信息 |
| 6 | -q |
只显示镜像 ID |
5.2 rmi 命令¶
定义:删除本地一个或多个镜像
格式:docker rmi [OPTIONS] IMAGE [IMAGE...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -f |
强制删除 |
| 2 | --no-prune |
不移除该镜像的过程镜像,默认移除 |
5.3 tag 命令¶
定义:标记本地镜像,将其归入某一仓库
格式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
5.4 build 命令¶
定义:用于使用 Dockerfile 创建镜像
格式:docker build [OPTIONS] PATH | URL | -
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | --build-arg=[] |
设置镜像创建时的变量 |
| 2 | -f |
指定要使用的 Dockerfile 路径,默认为当前目录下的 Dockerfile 文件 |
| 3 | --force-rm |
设置镜像过程中删除中间容器 |
| 4 | --isolation |
使用容器隔离技术 |
| 5 | --label=[] |
设置镜像使用的元数据 |
| 6 | -m |
设置内存最大值 |
| 7 | --no-cache |
创建镜像的过程不使用缓存 |
| 8 | --pull |
尝试去更新镜像的新版本 |
| 9 | -q |
安静模式,成功后只输出镜像 ID |
| 10 | --rm |
设置镜像成功后删除中间容器 |
| 11 | -t |
镜像的名字及标签 |
| 12 | --network |
默认 default,在构建期间设置 RUN 指令的网络模式 |
| 13 | --add-host |
添加自定义主机到 IP 映射 |
| 14 | --target |
只构建某一阶段的镜像 |
5.5 history 命令¶
定义:查看指定镜像的创建历史
格式:docker history [OPTIONS] IMAGE
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -H |
以可读的格式打印镜像大小和日期 |
| 2 | --no-trunc |
显示完整的提交记录 |
| 3 | -q |
仅列出提交记录 ID |
5.6 save 命令¶
定义:将指定镜像保存成 tar 归档文件
格式:docker save [OPTIONS] IMAGE [IMAGE...]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -o |
输出到的文件 |
5.7 import 命令¶
定义:从归档文件中创建镜像
格式:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
| 编号 | 参数 | 解释说明 |
|---|---|---|
| 1 | -c |
应用 docker 指令创建镜像 |
| 2 | -m |
提交时的说明文字 |