当前位置:首页 > 问答 > 正文

Docker 容器那些命令,别光听说了,自己动手才真懂容器管理的门道

网络技术社区与Docker官方文档实践总结)

Docker容器命令,光看教程不自己敲一遍,永远觉得隔着一层纱,今天咱们就抛开那些高大上的理论,直接动手,把最常用、最核心的容器管理命令摸个门清,下面这些命令,请你务必在自己的电脑上装了Docker后跟着敲一遍,效果天差地别。

容器的“一生”:从出生到消亡

  1. 创建并启动容器 (docker run):这是你接触的第一个魔法命令,它干了三件事:拉取镜像(如果本地没有)、创建新容器、启动它。

    • 动手试试docker run hello-world,你会看到Docker先从网上拉取一个极小的测试镜像,然后容器启动,打印出一段欢迎信息后自动退出,这就是一个容器最简单的生命周期。
    • 常用参数
      • -d:让容器在后台运行(守护进程),试试 docker run -d nginx,你会发现命令行立刻返回了一长串ID,而nginx服务器已经在后台跑起来了。
      • -p:端口映射,把容器的端口“暴露”给主机。docker run -d -p 8080:80 nginx 意味着你可以在电脑浏览器访问 localhost:8080 看到nginx的欢迎页面,容器内的80端口被映射到了你主机的8080端口。
      • -v:目录挂载,把主机上的一个目录“塞”进容器里。docker run -d -v /home/yourname/data:/app/data some-app,这样容器里的/app/data目录实际操作的就是你电脑上的/home/yourname/data目录,数据不会随着容器删除而丢失。
      • --name:给容器起个名字,不然Docker会随机分配一个奇怪的名字。docker run --name my-nginx nginx
  2. 查看容器状态 (docker ps):相当于你的容器监控面板。

    • docker ps:只看当前正在运行的容器。
    • docker ps -a:看所有的容器,包括已经退出的,从这里你可以看到容器的ID、名字、状态、端口映射等信息。这是你排查问题第一个要用的命令。
  3. 停止容器 (docker stop):温柔地停止一个运行中的容器,给它时间完成收尾工作,用法:docker stop <容器名或ID>,用 docker ps 拿到ID或名字,然后试试停止你刚才运行的nginx。

  4. 强制停止容器 (docker kill):相当于直接拔电源,容器可能来不及反应,除非docker stop没反应,否则慎用。docker kill <容器名或ID>

  5. 启动已停止的容器 (docker start):对于已经存在但处于停止状态的容器,用这个命令重新启动它,它不会新建容器,而是重启旧的。docker start my-nginx

  6. 重启容器 (docker restart):顾名思义,先停再启。docker restart my-nginx

    Docker 容器那些命令,别光听说了,自己动手才真懂容器管理的门道

  7. 删除容器 (docker rm):容器停止后,并不会自动消失,它们会占用磁盘空间,需要手动删除。

    • docker rm <容器名或ID>:删除一个已停止的容器。
    • docker rm -f <容器名或ID>:强制删除,即使容器还在运行也会先强制停止再删除。
    • docker container prune一键清理所有处于停止状态的容器,非常爽快,但操作前确认好。

与运行中的容器“互动”

  1. 查看容器日志 (docker logs):容器在后台运行,怎么看它打印了啥?就用这个。docker logs <容器名或ID>,加上 -f 参数可以实时追踪日志,像 tail -f 命令一样。docker logs -f my-nginx

  2. 进入容器内部 (docker exec):这是非常关键的一步,让你“钻”进正在运行的容器里,在里面执行命令,就像登录了一台小虚拟机。

    • docker exec -it <容器名或ID> /bin/bash:最常用的组合。-i表示保持标准输入打开,-t表示分配一个伪终端,合起来就能实现交互式操作。/bin/bash是你要执行的shell(如果是Alpine等精简镜像,可能是 /bin/sh),执行后,你的命令行提示符就变成了容器内部的,可以随意敲 ls, ps aux 等命令查看容器内部情况。想退出容器内部时,直接输入 exit 回车。
  3. 实时查看容器资源占用 (docker stats):像任务管理器一样,动态显示所有运行中容器的CPU、内存、网络IO等使用情况,直接运行 docker stats 即可。

    Docker 容器那些命令,别光听说了,自己动手才真懂容器管理的门道

镜像管理(容器的基础)

容器是从镜像来的,所以镜像命令也得会点。

  1. 拉取镜像 (docker pull):从仓库(比如Docker Hub)下载镜像到本地。docker pull nginx:latest,不指定标签默认是latest

  2. 查看本地镜像 (docker images):看看你电脑上已经有哪些镜像了。

  3. 删除镜像 (docker rmi):删除本地不再使用的镜像,注意:删除前需要先删除依赖它的所有容器。docker rmi <镜像名或ID>

总结一下动手流程:

  1. docker run -d --name my-web -p 80:80 nginx (启动一个nginx)
  2. 浏览器打开 localhost 看到欢迎页。
  3. docker ps (确认它在运行)
  4. docker logs my-web (看看日志)
  5. docker exec -it my-web /bin/bash (进入容器,在里面ls /一下,然后exit退出)
  6. docker stop my-web (停止它)
  7. docker rm my-web (删除它)
  8. docker images (看看nginx镜像还在不在)

这一套流程走下来,你对容器的基本管理就有手感了,别停留在看的阶段,现在就去打开终端,敲起来!遇到报错就去查,这才是真正学习的开始。