Docker 容器操作:运行、停止、查看与删除

Docker 容器操作:运行、停止、查看与删除

Docker 速通系列第 3 篇

本文对应课程:07|命令------容器操作

上一节我们把 Nginx 镜像拉到了本地。这一篇开始真正运行它,并练习查看、停止、再次启动和删除容器。你可以把这一组命令看成容器的生命周期管理工具。

先看结论

docker run 会创建并启动一个新容器,docker start 只会启动已经存在的停止状态容器。这两个命令不要混在一起。

text 复制代码
run 创建并启动 → stop 停止 → start 再次启动 → rm 删除

图:run 会创建新容器,start 只负责再次启动已有容器。

启动容器

先用最简单的方式启动 Nginx:

bash 复制代码
docker run nginx

Docker 会根据 Nginx 镜像创建一个新容器,然后启动它。

如果本地没有需要的镜像,Docker 通常会先拉取,再继续创建容器。

查看运行中的容器

bash 复制代码
docker ps

先认识几个常见字段:

  • CONTAINER ID:容器 ID。
  • IMAGE:启动容器使用的镜像。
  • COMMAND:容器启动命令。
  • CREATED:创建时间。
  • STATUS:运行状态。
  • PORTS:端口信息。
  • NAMES:容器名称。

docker ps 默认只显示正在运行的容器。想看到已经停止的容器,要加 -a:

bash 复制代码
docker ps -a

前台运行与后台运行

直接执行下面的命令时,Nginx 会在前台运行:

bash 复制代码
docker run nginx

这时当前终端会被占用。按 Ctrl+C 结束前台主进程后,容器也会停止。

想让容器在后台运行,就加 -d:

bash 复制代码
docker run -d nginx

-d 是 detached 的缩写。命令执行后会输出容器 ID,终端可以继续使用。

图:前台模式连接当前终端,-d 模式让容器在后台继续运行。

为容器指定名称

如果不指定名称,Docker 会自动生成一个随机名称。实验中最好用 --name 起一个容易识别的名字:

bash 复制代码
docker run -d --name my-nginx nginx

后面停止、查看日志或删除容器时,直接写名称就行,不用记容器 ID。

启动已停止的容器

bash 复制代码
docker start my-nginx

也可以使用容器 ID:

bash 复制代码
docker start 容器ID

停止容器

bash 复制代码
docker stop my-nginx

stop 会先向容器主进程发送停止信号,并等待应用正常退出;超过等待时间后才会强制结束。

重启容器

bash 复制代码
docker restart my-nginx

restart 会重启容器。它不是创建新容器,容器名称和原有配置不会因此改变。

查看容器日志

bash 复制代码
docker logs my-nginx

持续查看最新日志:

bash 复制代码
docker logs -f my-nginx

-f 会持续跟踪新日志。这里按 Ctrl+C 只是退出日志查看,不会停止后台容器。

查看容器资源使用情况

bash 复制代码
docker stats my-nginx

你会看到 CPU、内存、网络和磁盘 I/O 等实时信息。

查看所有运行中容器:

bash 复制代码
docker stats

删除容器

删除已停止容器:

bash 复制代码
docker rm my-nginx

如果容器仍在运行,可以强制停止并删除:

bash 复制代码
docker rm -f my-nginx

警告: -f 会停止并删除运行中的容器。执行前确认容器不再提供服务,并确认需要保留的数据不在容器可写层中。

常用命令表

需求 命令
启动容器 docker run
查看运行中的容器 docker ps
查看全部容器 docker ps -a
启动已停止容器 docker start
停止容器 docker stop
重启容器 docker restart
查看日志 docker logs
查看资源 docker stats
删除容器 docker rm

最小练习

bash 复制代码
# 创建后台容器
docker run -d --name my-nginx nginx

# 查看容器
docker ps

# 查看日志
docker logs my-nginx

# 停止容器
docker stop my-nginx

# 查看全部容器
docker ps -a

# 再次启动
docker start my-nginx

# 删除容器
docker rm -f my-nginx

小结

容器是镜像创建出的运行实例。常用管理顺序是:

text 复制代码
run -> ps -> logs / stats -> stop -> start / restart -> rm

下一篇深入学习 docker run 的参数和端口映射。

Docker 速通系列:

  1. Docker 架构、云服务器与安装
  2. Docker 镜像操作
  3. Docker 容器操作
  4. docker run 详解
  5. Docker 镜像保存与迁移
  6. 分享镜像到 Docker Hub
  7. Docker 实验小结
相关推荐
无奈笑天下18 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
Rabitebla21 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
java_logo1 天前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
xbzb1 天前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump1 天前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
星恒随风1 天前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
少司府1 天前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
无足鸟ICT1 天前
【RHCA+】IO调度算法
linux·服务器
打工仔折腾 AI1 天前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化