查看“Docker:命令大全”的源代码
←
Docker:命令大全
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Docker]] == 关于 == 常用的 Docker 命令。 == 容器生命周期管理 == === run === '''<code>docker run</code>''':创建一个新的容器并运行一个命令; 语法: <syntaxhighlight lang="bash" highlight=""> docker run [OPTIONS] IMAGE [COMMAND] [ARG...] </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | -a stdin || 指定标准输入输出内容类型,可选 '''STDIN''' / '''STDOUT''' / '''STDERR''' 三项; |- | '''-d''' || 后台运行容器,并返回容器ID; |- | '''-i''' || 以交互模式运行容器,通常与 -t 同时使用; |- | '''-P''' || 随机端口映射,容器内部端口随机映射到主机的端口 |- | '''-p''' || 指定端口映射,格式为:'''主机(宿主)端口:容器端口''' |- | '''-t''' || 为容器重新分配一个伪输入终端,通常与 -i 同时使用; |- | '''--name="nginx-lb"''' || 为容器指定一个名称; |- | --dns 8.8.8.8 || 指定容器使用的DNS服务器,默认和宿主一致; |- | --dns-search example.com || 指定容器DNS搜索域名,默认和宿主一致; |- | '''-h "mars"''' || 指定容器的hostname; |- | -e username="ritchie" || 设置环境变量; |- | --env-file=[] || 从指定文件读入环境变量; |- | --cpuset="0-2" or --cpuset="0,1,2" || 绑定容器到指定CPU运行; |- | -m || 设置容器使用内存最大值; |- | --net="bridge" || 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型; |- | --link=[] || 添加链接到另一个容器; |- | --expose=[] || 开放一个端口或一组端口; |- | --volume , -v || 绑定一个卷 |} 实例: # 使用docker镜像 nginx:latest 以后台模式启动一个容器,并将容器命名为 mynginx。 #: <syntaxhighlight lang="bash" highlight=""> docker run --name mynginx -d nginx:latest </syntaxhighlight> # 使用镜像 nginx:latest 以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。 #: <syntaxhighlight lang="bash" highlight=""> docker run -P -d nginx:latest </syntaxhighlight> # 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。 #: <syntaxhighlight lang="bash" highlight=""> docker run -p 80:80 -v /data:/data -d nginx:latest </syntaxhighlight> # 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。 #: <syntaxhighlight lang="bash" highlight=""> $ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash </syntaxhighlight> # 使用镜像 nginx:latest 以交互模式启动一个容器,在容器内执行 /bin/bash 命令。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker run -it nginx:latest /bin/bash root@b8573233d675:/# </syntaxhighlight> === start/stop/restart === '''<code>docker start</code>''':启动一个或多个已经被停止的容器; '''<code>docker stop</code>''':停止一个运行中的容器; '''<code>docker restart</code>''':重启容器; 语法: <syntaxhighlight lang="bash" highlight=""> docker start [OPTIONS] CONTAINER [CONTAINER...] </syntaxhighlight> <syntaxhighlight lang="bash" highlight=""> docker stop [OPTIONS] CONTAINER [CONTAINER...] </syntaxhighlight> <syntaxhighlight lang="bash" highlight=""> docker restart [OPTIONS] CONTAINER [CONTAINER...] </syntaxhighlight> 实例: # 启动已被停止的容器 myrunoob: #: <syntaxhighlight lang="bash" highlight=""> docker start myrunoob </syntaxhighlight> # 停止运行中的容器 myrunoob: #: <syntaxhighlight lang="bash" highlight=""> docker stop myrunoob </syntaxhighlight> # 重启容器 myrunoob: #: <syntaxhighlight lang="bash" highlight=""> docker restart myrunoob </syntaxhighlight> === kill === '''<code>docker kill</code>''':杀掉一个运行中的容器; 语法: <syntaxhighlight lang="bash" highlight=""> docker kill [OPTIONS] CONTAINER [CONTAINER...] </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | -s || 向容器发送一个信号 |} 实例: # 杀掉运行中的容器 mynginx: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker kill -s KILL mynginx mynginx </syntaxhighlight> === rm === '''<code>docker rm</code>''':删除一个或多个容器; 语法: <syntaxhighlight lang="bash" highlight=""> docker rm [OPTIONS] CONTAINER [CONTAINER...] </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | '''-f''' || 通过 SIGKILL 信号强制删除一个运行中的容器。 |- | '''-l''' || 移除容器间的网络连接,而非容器本身。 |- | -v || 删除与容器关联的卷。 |} 实例: # 强制删除容器 db01、db02: #: <syntaxhighlight lang="bash" highlight=""> docker rm -f db01 db02 </syntaxhighlight> # 移除容器 nginx01 对容器 db01 的连接,连接名 db: #: <syntaxhighlight lang="bash" highlight=""> docker rm -l db </syntaxhighlight> # 删除容器 nginx01,并删除容器挂载的数据卷: #: <syntaxhighlight lang="bash" highlight=""> docker rm -v nginx01 </syntaxhighlight> # 删除所有已经停止的容器: #: '''<syntaxhighlight lang="bash" highlight=""> docker rm $(docker ps -a -q) </syntaxhighlight>''' === pause/unpause === '''<code>docker pause</code>''':暂停容器中所有的进程; '''<code>docker unpause</code>''':恢复容器中所有的进程; 语法: <syntaxhighlight lang="bash" highlight=""> docker pause CONTAINER [CONTAINER...] </syntaxhighlight> <syntaxhighlight lang="bash" highlight=""> docker unpause CONTAINER [CONTAINER...] </syntaxhighlight> 实例: # 暂停数据库容器 db01 提供服务: #: <syntaxhighlight lang="bash" highlight=""> docker pause db01 </syntaxhighlight> # 恢复数据库容器 db01 提供服务: #: <syntaxhighlight lang="bash" highlight=""> docker unpause db01 </syntaxhighlight> === create === '''<code>docker create</code>''':创建一个新的容器但不启动它; * 用法同 '''docker run'''; 语法: <syntaxhighlight lang="bash" highlight=""> docker create [OPTIONS] IMAGE [COMMAND] [ARG...] </syntaxhighlight> * 语法同 '''docker run'''; 实例: # 使用 docker 镜像 nginx:latest 创建一个容器,并将容器命名为 myrunoob: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker create --name myrunoob nginx:latest 09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f </syntaxhighlight> === exec === '''<code>docker exec</code>''':在运行的容器中执行命令; 语法: <syntaxhighlight lang="bash" highlight=""> docker exec [OPTIONS] CONTAINER COMMAND [ARG...] </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | '''-d''' || 分离模式: 在后台运行 |- | '''-i''' || 即使没有附加也保持 STDIN 打开 |- | '''-t''' || 分配一个伪终端 |} 实例: # 在容器 mynginx 中以交互模式执行容器内 /root/runoob.sh 脚本: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker exec -it mynginx /bin/sh /root/runoob.sh http://www.runoob.com/ </syntaxhighlight> # 在容器 mynginx 中开启一个交互模式的终端: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker exec -i -t mynginx /bin/bash root@b1a0703e41e7:/# </syntaxhighlight> #* 也可以通过 docker ps -a 命令查看已经在运行的容器,然后使用容器 ID 进入容器。 # 查看已经在运行的容器 ID: #: <syntaxhighlight lang="bash" highlight=""> # docker ps -a ... 9df70f9a0714 openjdk "/usercode/script.sh…" ... </syntaxhighlight> #: 第一列的 9df70f9a0714 就是容器 ID。 # 通过 exec 命令对指定的容器执行 bash: #: <syntaxhighlight lang="bash" highlight=""> # docker exec -it 9df70f9a0714 /bin/bash </syntaxhighlight> == 容器操作 == === ps === '''<code>docker ps</code>''':列出容器; 语法: <syntaxhighlight lang="bash" highlight=""> docker ps [OPTIONS] </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | '''-a''' || 显示所有的容器,包括未运行的。 |- | '''-f''' || 根据条件过滤显示的内容。 |- | --format || 指定返回值的模板文件。 |- | '''-l''' || 显示最近创建的容器。 |- | '''-n''' || 列出最近创建的n个容器。 |- | --no-trunc || 不截断输出。 |- | '''-q''' || 静默模式,只显示容器编号。 |- | -s || 显示总的文件大小。 |} 输出详情介绍: {| class="wikitable" ! style="width:10%;" | 字段 ! style="width:40%;" | 描述 |- | CONTAINER ID || 容器 ID。 |- | IMAGE || 使用的镜像。 |- | COMMAND || 启动容器时运行的命令。 |- | CREATED || 容器的创建时间。 |- | STATUS || 容器状态。 状态有 7 种: * created(已创建) * restarting(重启中) * running(运行中) * removing(迁移中) * paused(暂停) * exited(停止) * dead(死亡) |- | PORTS || 容器的端口信息和使用的连接类型(tcp\udp)。 |- | NAMES || 自动分配的容器名称。 |} 实例: # 列出所有在运行的容器信息。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker ps CONTAINER ID IMAGE COMMAND ... PORTS NAMES 09b93464c2f7 nginx:latest "nginx -g 'daemon off" ... 80/tcp, 443/tcp myrunoob 96f7f14e99ab mysql:5.6 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql </syntaxhighlight> # 列出最近创建的5个容器信息。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker ps -n 5 CONTAINER ID IMAGE COMMAND CREATED 09b93464c2f7 nginx:latest "nginx -g 'daemon off" 2 days ago ... b8573233d675 nginx:latest "/bin/bash" 2 days ago ... b1a0703e41e7 nginx:latest "nginx -g 'daemon off" 2 days ago ... f46fb1dec520 5c6e1090e771 "/bin/sh -c 'set -x \t" 2 days ago ... a63b4a5597de 860c279d2fec "bash" 2 days ago ... </syntaxhighlight> # 列出所有创建的容器ID。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker ps -a -q 09b93464c2f7 b8573233d675 b1a0703e41e7 f46fb1dec520 a63b4a5597de 6a4aa42e947b de7bb36e7968 43a432b73776 664a8ab1a585 ba52eb632bbd ... </syntaxhighlight> === inspect === '''<code>docker inspect</code>''':获取容器/镜像的元数据; 语法: <syntaxhighlight lang="bash" highlight=""> docker inspect [OPTIONS] NAME|ID [NAME|ID...] </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | -f || 指定返回值的模板文件。 |- | -s || 显示总的文件大小。 |- | --type || 为指定类型返回JSON。 |} 实例: # 获取镜像 mysql:5.6 的元信息: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker inspect mysql:5.6 [ { "Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec", "RepoTags": [ "mysql:5.6" ], "RepoDigests": [], "Parent": "", "Comment": "", "Created": "2016-05-24T04:01:41.168371815Z", "Container": "e0924bc460ff97787f34610115e9363e6363b30b8efa406e28eb495ab199ca54", "ContainerConfig": { "Hostname": "b0cf605c7757", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "ExposedPorts": { "3306/tcp": {} }, ... </syntaxhighlight> # 获取正在运行的容器 mymysql 的 IP: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql 172.17.0.3 </syntaxhighlight> === top === '''<code>docker top</code>''':查看容器中运行的进程信息,支持 '''ps''' 命令参数。; 语法: <syntaxhighlight lang="bash" highlight=""> docker top [OPTIONS] CONTAINER [ps OPTIONS] </syntaxhighlight> * 容器运行时不一定有 /bin/bash 终端来交互执行 top 命令,而且容器还不一定有 top 命令,可以使用 docker top 来实现查看 container 中正在运行的进程。 实例: # 查看容器 mymysql 的进程信息: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~/mysql$ docker top mymysql UID PID PPID C STIME TTY TIME CMD 999 40347 40331 18 00:58 ? 00:00:02 mysqld </syntaxhighlight> # 查看所有运行容器的进程信息: #: <syntaxhighlight lang="bash" highlight=""> for i in `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done </syntaxhighlight> === attach === '''<code>docker attach</code>''':连接到正在运行中的容器; 语法: <syntaxhighlight lang="bash" highlight=""> docker attach [OPTIONS] CONTAINER </syntaxhighlight> <pre> 要 attach 上去的容器必须正在运行,可以同时连接上同一个 container 来共享屏幕(与 screen 命令的 attach 类似)。 官方文档中说 attach 后可以通过 CTRL-C 来 detach,但实际上经过我的测试,如果 container 当前在运行 bash,CTRL-C 自然是当前行的输入,没有退出;如果 container 当前正在前台运行进程,如输出 nginx 的 access.log 日志,CTRL-C 不仅会导致退出容器,而且还 stop 了。这不是我们想要的,detach 的意思按理应该是脱离容器终端,但容器依然运行。好在 attach 是可以带上 --sig-proxy=false 来确保 CTRL-D 或 CTRL-C 不会关闭容器。 </pre> * 即,使用 attach 连接到容器之后: *# CTRL-C 退出容器会导致容器停止; *# 添加 '''--sig-proxy=false''' 可使 CTRL-C 仅退出容器,而不停止容器; 实例: # 容器mynginx将访问日志指到标准输出,连接到容器查看访问信息: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker attach --sig-proxy=false mynginx 192.168.239.1 - - [10/Jul/2016:16:54:26 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" </syntaxhighlight> === events === '''<code>docker events</code>''':从服务器获取实时事件; 语法: <syntaxhighlight lang="bash" highlight=""> docker events [OPTIONS] </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | '''-f''' || 根据条件过滤事件; |- | '''--since''' || 从指定的时间戳后显示所有事件; |- | '''--until''' || 流水时间显示到指定的时间为止; |} 实例: # 显示 docker 2016年7月1日后的所有事件: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~/mysql$ docker events --since="1467302400" 2016-07-08T19:44:54.501277677+08:00 network connect 66f958fd13dc4314ad20034e576d5c5eba72e0849dcc38ad9e8436314a4149d4 (container=b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64, name=bridge, type=bridge) 2016-07-08T19:44:54.723876221+08:00 container start b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (image=nginx:latest, name=elegant_albattani) 2016-07-08T19:44:54.726110498+08:00 container resize b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (height=39, image=nginx:latest, name=elegant_albattani, width=167) 2016-07-08T19:46:22.137250899+08:00 container die b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (exitCode=0, image=nginx:latest, name=elegant_albattani) ... </syntaxhighlight> # 显示 docker 镜像为mysql:5.6 2016年7月1日后的相关事件: #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~/mysql$ docker events -f "image"="mysql:5.6" --since="1467302400" 2016-07-11T00:38:53.975174837+08:00 container start 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql) 2016-07-11T00:51:17.022572452+08:00 container kill 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql, signal=9) 2016-07-11T00:51:17.132532080+08:00 container die 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (exitCode=137, image=mysql:5.6, name=mymysql) 2016-07-11T00:51:17.514661357+08:00 container destroy 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql) 2016-07-11T00:57:18.551984549+08:00 container create c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql) 2016-07-11T00:57:18.557405864+08:00 container attach c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql) 2016-07-11T00:57:18.844134112+08:00 container start c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql) 2016-07-11T00:57:19.140141428+08:00 container die c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (exitCode=1, image=mysql:5.6, name=mymysql) 2016-07-11T00:58:05.941019136+08:00 container destroy c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql) 2016-07-11T00:58:07.965128417+08:00 container create a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql) 2016-07-11T00:58:08.188734598+08:00 container start a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql) 2016-07-11T00:58:20.010876777+08:00 container top a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql) 2016-07-11T01:06:01.395365098+08:00 container top a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql) </syntaxhighlight> #: 如果指定的时间是到秒级的,需要将时间转成时间戳。如果时间为日期的话,可以直接使用,如--since="2016-07-01"。 === logs === '''<code>docker logs</code>''':获取容器的日志; 语法: <syntaxhighlight lang="bash" highlight=""> docker logs [OPTIONS] CONTAINER </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | -f || 跟踪日志输出 |- | --since || 显示某个开始时间的所有日志 |- | -t || 显示时间戳 |- | --tail || 仅列出最新 N 条容器日志 |} 实例: # 跟踪查看容器 mynginx 的日志输出。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker logs -f mynginx 192.168.239.1 - - [10/Jul/2016:16:53:33 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" 2016/07/10 16:53:33 [error] 5#5: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.239.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.239.130", referrer: "http://192.168.239.130/" 192.168.239.1 - - [10/Jul/2016:16:53:33 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://192.168.239.130/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" 192.168.239.1 - - [10/Jul/2016:16:53:59 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" ... </syntaxhighlight> # 查看容器 mynginx 从2016年7月1日后的最新10条日志。 #: <syntaxhighlight lang="bash" highlight=""> docker logs --since="2016-07-01" --tail=10 mynginx </syntaxhighlight> === wait === '''<code>docker wait</code>''':阻塞运行直到容器停止,然后打印出它的退出代码; 语法: <syntaxhighlight lang="bash" highlight=""> docker wait [OPTIONS] CONTAINER [CONTAINER...] </syntaxhighlight> 实例: #: <syntaxhighlight lang="bash" highlight=""> docker wait CONTAINER </syntaxhighlight> === export === '''<code>docker export</code>''':将文件系统作为一个 '''tar''' 归档文件导出到 '''STDOUT'''; 语法: <syntaxhighlight lang="bash" highlight=""> docker export [OPTIONS] CONTAINER </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | '''-o''' || 将输入内容写到文件。 |} 实例: # 将 id 为 a404c6c174a2 的容器按日期保存为 tar 文件。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2 runoob@runoob:~$ ls mysql-`date +%Y%m%d`.tar mysql-20160711.tar </syntaxhighlight> === port === '''<code>docker port</code>''':列出指定的容器的端口映射,或者查找将 PRIVATE_PORT NAT 到面向公众的端口; 语法: <syntaxhighlight lang="bash" highlight=""> docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]] </syntaxhighlight> 实例: # 查看容器 mynginx 的端口映射情况。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker port mymysql 3306/tcp -> 0.0.0.0:3306 </syntaxhighlight> == 容器rootfs命令 == === commit === '''<code>docker commit</code>''':从容器创建一个新的镜像; 语法: <syntaxhighlight lang="bash" highlight=""> docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | '''-a''' || 提交的镜像作者; |- | -c || 使用 Dockerfile 指令来创建镜像; |- | '''-m''' || 提交时的说明文字; |- | '''-p''' || 在 commit 时,将容器暂停。 |} 实例: # 将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1 sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057 runoob@runoob:~$ docker images mymysql:v1 REPOSITORY TAG IMAGE ID CREATED SIZE mymysql v1 37af1236adef 15 seconds ago 329 MB </syntaxhighlight> === cp === '''<code>docker cp</code>''':用于容器与主机之间的数据拷贝; 语法: <syntaxhighlight lang="bash" highlight=""> docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- </syntaxhighlight> <syntaxhighlight lang="bash" highlight=""> docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH </syntaxhighlight> OPTIONS: {| class="wikitable" ! style="width:10%;" | 命令 ! style="width:40%;" | 描述 |- | -L || 保持源目标中的链接 |} 实例: # 将主机 /www/runoob 目录拷贝到容器 96f7f14e99ab 的 /www 目录下。 #: <syntaxhighlight lang="bash" highlight=""> docker cp /www/runoob 96f7f14e99ab:/www/ </syntaxhighlight> # 将主机 /www/runoob 目录拷贝到容器 96f7f14e99ab 中,目录重命名为 www。 #: <syntaxhighlight lang="bash" highlight=""> docker cp /www/runoob 96f7f14e99ab:/www </syntaxhighlight> # 将容器 96f7f14e99ab 的 /www 目录拷贝到主机的 /tmp 目录中。 #: <syntaxhighlight lang="bash" highlight=""> docker cp 96f7f14e99ab:/www /tmp/ </syntaxhighlight> === diff === '''<code>docker diff</code>''':检查容器里文件结构的更改; 语法: <syntaxhighlight lang="bash" highlight=""> docker diff [OPTIONS] CONTAINER </syntaxhighlight> 实例: # 查看容器 mymysql 的文件结构更改。 #: <syntaxhighlight lang="bash" highlight=""> runoob@runoob:~$ docker diff mymysql A /logs A /mysql_data C /run C /run/mysqld A /run/mysqld/mysqld.pid A /run/mysqld/mysqld.sock C /tmp </syntaxhighlight> == 镜像仓库 == login pull push search == 本地镜像管理 == images rmi tag build history save load import == info|version == info version
返回至“
Docker:命令大全
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息