资讯详情

Docker Container -- 容器命令详解

📅 2026/11/5 7:54:36 | 华诺云谱 👁 阅读
Docker Container -- 容器命令详解
目录1. docker run2. docker ps3. docker create4. docker logs5. docker attach6. docker exec7. docker start8. docker stop9. docker restart10. docker kill11. docker top12.docker stats13. docker container inspect15. docker port15. docker cp16. docker diff17. docker commit18. docker pause19. docker unpause20. docker rm21. docker export22. docker wait23. docker rename24. docker container prune25.docker update正文开始1. docker run功能创建一个新的容器并运行一个命令语法docker run [OPTIONS] IMAGE [COMMAND] [ARG...] [OPTIONS] 选项参数这是 Docker 运行的配置项用于控制容器的网络、存储、资源限制、运行模式等。选项非常多通常以 - 或 -- 开头。 IMAGE 镜像这是必填项指定你要基于哪个镜像来创建容器。 [COMMAND] 命令这是可选项用于覆盖镜像中定义的默认启动命令即 Dockerfile 中的 CMD 或 ENTRYPOINT。 [ARG...] 参数这是可选项是传递给 [COMMAND] 的参数。# 在Ubuntu 的宿主机上再创建一个CentOS 7的一个操作系统 roothcss-ecs-c91e:~# cat /etc/*release* DISTRIB_IDUbuntu DISTRIB_RELEASE24.04 DISTRIB_CODENAMEnoble DISTRIB_DESCRIPTIONUbuntu 24.04.4 LTS PRETTY_NAMEUbuntu 24.04.4 LTS NAMEUbuntu .... #去docker hub 找到centos对应的tag将他拉取下来 roothcss-ecs-c91e:~# docker pull centos:7 roothcss-ecs-c91e:~# docker run centos:7 #一跑发现这个容器直接退出了 roothcss-ecs-c91e:~# # docker ps不带任何参数时查看的是运行时的容器 roothcss-ecs-c91e:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES roothcss-ecs-c91e:~# docker ps -a #查看所有容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 081c2a30fe7f centos:7 /bin/bash 3 minutes ago Exited (0) 3 minutes ago optimistic_mcnulty别名docker container run关键参数1.-d:后台运行容器并返回容器 ID2.-i:以交互模式运行容器通常与-t同时使用exit可退出容器的交互模式3.-P:随机端口映射容器内部端口随机映射到主机的端口4. -p:指定端口映射格式为主机宿主端口容器端口我们知道我们的LXC或者是我们的Docker它底层都使用了namespace这种隔离技术namespace把我们的网络做了一个隔离 而我们的端口也被隔离起来了隔离起来后如果我们容器里面有一个服务是web服务Nginx nginx服务可对外提供服务它有的一个80端口因为我们给他做了隔离我们外部的用户访问不到它这个时候我们就可以通过-p / -P把我们容器的一个端口和宿主机的端口做一个打通打通之后当访问宿主机的这个80端口时可以自动的把这个流量转到我们容器的一个端口从而访问到nginx, 这就是端口映射从而可以访问到我们容器里面的服务.此处需注意当我们通过外部浏览器访问时因为我们并没有开通这个32772或32773的防火墙所以我们会访问不通但是我们直接通过curl 命令在我们的宿主机上访问本机的127.0.0.1则可行。若我们想通过浏览器通过公网进行访问因为我们使用的是云服务器则需先开通防护墙5.-t:为容器重新分配一个伪输入终端通常与-i同时使用6.--namenginx-lb:为容器指定一个名称7.-h mars:指定容器的hostname8.-e usernameritchie:设置环境变量9.--cpuset-cpus0-2 or --cpuset-cpus0,1,2:绑定容器到指定 CPU运行10.-m :设置容器使用内存最大值11.--networkbridge:指定容器的网络连接类型12.--link[ ]:添加链接到另一个容器13.--volume , -v:绑定一个卷14.--rm:shell退出的时候自动删除容器2. docker ps功能列出容器语法docker ps [OPTIONS]别名docker container ls, docker container list, docker container ps关键参数-a :显示所有的容器包括未运行的。-f :根据条件过滤显示的内容。--format :指定返回值的模板文件。如json或者table-l :显示latest的容器。-n :列出最近创建的n个容器。--no-trunc :不截断输出。-q :静默模式只显示容器编号。-s :显示总的文件大小。3.docker create功能创建一个新的容器但不启动它语法docker create [OPTIONS] IMAGE [COMMAND] [ARG...] 别名 docker container create关键参数-i:以交互模式运行容器通常与-t同时使用-P:随机端口映射容器内部端口随机映射到主机的端口-p:指定端口映射格式为主机(宿主)端口:容器端口-t:为容器重新分配一个伪输入终端通常与-i同时使用--namenginx-lb:为容器指定一个名称-h mars:指定容器的hostname-e usernameritchie:设置环境变量--cpuset-cpus0-2 or --cpuset-cpus0,1,2:绑定容器到指定CPU运行-m :设置容器使用内存最大值--networkbridge:指定容器的网络连接类型--link[ ]:添加链接到另一个容器--volume , -v:绑定一个卷--rm:shell退出的时候自动删除容器--restart:自动重启样例docker create --name mynginx nginx:latest4. docker logs功能查看容器日志语法docker logs [OPTIONS] CONTAINER 别名 docker container logs关键参数-f ,--follow:跟踪日志输出--since :显示某个开始时间的所有日志-t,--timestamps :显示时间戳-n--tail :仅列出最新N条容器日志样例开启容器后#追踪查看容器 mynginx 的日志输出。 docker logs -f mynginx1 #查看容器 mynginx 从 2016 年 7 月 1 日后的最新 10 条日志。 docker logs --since2016-07-01 --tail10 mynginx5.docker attach功能连接到正在运行中的容器。语法docker attach [OPTIONS] CONTAINER 别名 docker container attach关键参数--sig-proxy是否将所有信号代理默认是true如果设置为false退出的话不会影响容器否则退出会导致容器退出样例root139-159-150-152:/data/myworkdir/dockerfile/cache# docker attach mynginx #此处按了 ctrlc 后会把容器杀死 ^C2023/03/15 06:26:24 [notice] 1#1: signal 2 (SIGINT) received, exiting 2023/03/15 06:26:24 [notice] 28#28: exiting 2023/03/15 06:26:24 [notice] 28#28: exit 2023/03/15 06:26:24 [notice] 1#1: signal 17 (SIGCHLD) received from 28 2023/03/15 06:26:24 [notice] 1#1: worker process 28 exited with code 0 2023/03/15 06:26:24 [notice] 1#1: exit root139-159-150-152:/data/myworkdir/dockerfile/cache# docker attach --sig-proxyfalse mynginx #此处按了 ctrlc 不会把容器杀死显示报文为CONTAINER ID:容器ID。IMAGE:使用的镜像。COMMAND:启动容器时运行的命令。CREATED:容器的创建时间。STATUS:容器状态。PORTS:容器的端口信息和使用的连接类型tcp\udp。NAMES:自动分配的容器名称。6. docker exec功能在容器中执行命令语法docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 别名 docker container exec关键参数-d :分离模式:在后台运行-i :即使没有附加也保持STDIN打开-t :分配一个伪终端-e :设置环境变量-u,--user :指定用户name|uid[:group|gid]-w,--workdir:指定工作目录样例#在容器 mynginx 中以交互模式执行 echo: docker exec -it mynginx echo Hello bit #在容器 mynginx 中以交互模式打开 shell: docker exec -it mynginx bash #通过 id 进去docker ps 可以看到容器 id7. docker start功能启动停止的容器语法docker start [OPTIONS] CONTAINER [CONTAINER...] 别名 docker container start样例8. docker stop功能停止运行的容器语法docker stop [OPTIONS] CONTAINER [CONTAINER...] 别名 docker container stop关键参数-s :发送的信号9. docker restart功能重启容器语法docker restart [OPTIONS] CONTAINER [CONTAINER...] 别名 docker container restart关键参数-s :发送信号10. docker kill功能强制退出容器语法docker kill [OPTIONS] CONTAINER [CONTAINER...] 别名 docker container kill关键参数-s :发送的信号注意事项Docker stop发送的是SIGTERM信号docker kill发送的是SIGKILL信号11. docker top功能查看容器中运行的进程信息支持ps命令参数。语法docker top CONTAINER [ps OPTIONS] 别名 docker container top注意事项容器运行时不一定有/bin/bash 终端来交互执行 top 命令而且容器还不一定有top 命令可以使用docker top来实现查看container中正在运行的进程。12.docker stats功能显示容器资源的使用情况包括CPU、内存、网络I/O等。语法docker stats [OPTIONS] [CONTAINER...] 别名 docker container stats关键参数--all , -a :显示所有的容器包括未运行的。--format :指定返回值的模板文件。如table,json--no-stream :展示当前状态就直接退出了不再实时更新。--no-trunc :不截断输出。返回报文CONTAINER ID与NAME:容器ID与名称。CPU %与MEM %:容器使用的CPU和内存的百分比。MEM USAGE / LIMIT:容器正在使用的总内存以及允许使用的内存总量。NET I/O:容器通过其网络接口发送和接收的数据量。BLOCK I/O:容器从主机上的块设备读取和写入的数据量。PIDs:容器创建的进程或线程数。样例docker stats13. docker container inspect功能:查看容器详细信息语法:docker container inspect [OPTIONS] CONTAINER [CONTAINER...]关键参数:-f :指定返回值的模板文件。如table、json-s :显示总的文件大小。注意事项docker inspect会自动检查是镜像还是容器然后显示相信信息15. docker port功能用于列出指定的容器的端口映射或者查找将 PRIVATE_PORT NAT到面向公众的端口。语法docker port CONTAINER [PRIVATE_PORT[/PROTO]] 别名 docker container port样例15. docker cp功能在容器和宿主机之间拷贝文件语法docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH | - CONTAINER: 容器名称或 ID SRC_PATH: 容器内的源路径 DEST_PATH: 宿主机的目标路径 -: 特殊符号表示输出到标准输出stdout docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH SRC_PATH: 宿主机的源路径 -: 从标准输入stdin读取数据 CONTAINER: 容器名称或 ID DEST_PATH: 容器内的目标路径 别名 docker container cp样例场景准备# 启动一个测试容器 docker run -d --name mynginx nginx场景一从容器复制文件到宿主机# 把容器中的 nginx 配置文件复制出来 docker cp mynginx:/etc/nginx/nginx.conf ./nginx.conf #结果在当前目录下得到 nginx.conf 文件。 # 复制整个目录 docker cp mynginx:/etc/nginx ./nginx-conf-backup #结果把容器内的 /etc/nginx 目录完整复制到宿主机的 ./nginx-conf-backup。场景二从宿主机复制文件进容器# 把宿主机文件复制进容器 docker cp ./index.html mynginx:/usr/share/nginx/html/index.html # 结果替换容器中 nginx 的首页文件。 # 复制整个目录到容器 docker cp ./my-website/. mynginx:/usr/share/nginx/html/ # 注意末尾的 / 和 .表示把 my-website 里的内容复制到目标目录。16. docker diff功能检查容器里文件结构的更改。语法docker diff CONTAINER17. docker commit功能从容器创建一个新的镜像。语法docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]参数-a :提交的镜像作者-c :使用Dockerfile指令来创建镜像可以修改启动指令-c :使用Dockerfile指令来创建镜像可以修改启动指令-c :使用Dockerfile指令来创建镜像可以修改启动指令18. docker pause功能:暂停容器中所有的进程。语法docker pause CONTAINER [CONTAINER...] 别名 docker container pause样例19. docker unpause功能恢复容器中所有的进程。语法docker unpause CONTAINER [CONTAINER...] 别名 docker container unpause样例20. docker rm功能:删除停止的容器语法docker rm [OPTIONS] CONTAINER [CONTAINER...] 别名 docker container rm关键参数-f :通过SIGKILL信号强制删除一个运行中的容器。样例21. docker export功能导出容器内容为 tar文件语法docker export [OPTIONS] CONTAINER 别名 docker container export关键参数-o:写入到文件。样例#导出 nginx 为 tar docker export -o mynginx202203.tar mynginx22. docker wait功能阻塞运行直到容器停止然后打印出它的退出代码。语法docker wait CONTAINER [CONTAINER...] 别名 docker container wait样例docker wait mynginx23. docker rename功能重命名容器语法docker rename CONTAINER NEW_NAME 别名 docker container rename样例docker rename mynginx myweb24. docker container prune功能删除所有停止的容器语法docker container prune [OPTIONS]关键参数-f, --force不提示是否进行确认样例docker container prune25.docker update功能更新容器配置语法docker update [OPTIONS] CONTAINER [CONTAINER...] 别名 docker container update关键参数--cpuscpu数量--cpuset-cpus :使用哪些cpu--memory :内存限制--memory-swap交换内存--cpu-period:是用来指定容器对CPU 的使用要在多长时间内做一次重新分配--cpu-quota是用来指定在这个周期内最多可以有多少时间用来跑这个容器样例#更新内存 docker update -m 400m myweb
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑