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 实验小结
相关推荐
星辰徐哥3 小时前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion
H_oRIZoN_4 小时前
Linux入门DAY41(51 单片机 串口与通信协议)
linux·运维·单片机
正仪5 小时前
kubernetes中list-watch机制
云原生·容器·kubernetes
GeW5 小时前
RHCE备考别瞎学!按这个计划走,30天提高通过率,快速拿证
linux
Escalating_xu5 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
傲世仙尊6 小时前
System V 进程间通信详解:共享内存、消息队列与信号量(CSDN博客)
linux·开发语言·c++
码农小韩6 小时前
Linux应用开发(六)——进程间通信
linux·linux驱动·嵌入式软件开发·嵌入式操作系统·linux应用
cui_hao_nan7 小时前
从零搭建 Kubernetes 集群:Ubuntu + kubeadm 完整实战
ubuntu·容器·kubernetes
笨笨饿7 小时前
#138_解决Codex要五次回复的问题
linux·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式实时数据库
m0_459872927 小时前
Linux 系统基础
linux·运维·服务器