1. 概述
Docker 是一个广受欢迎的容器化平台,它为应用的开发、测试和部署提供了一致且高效的运行环境。Docker 容器是一种轻量级、独立且可执行的打包方式,包含了运行特定应用所需的所有代码、运行时、系统工具和库文件等。
在使用 Docker 的过程中,保持环境的整洁对于开发、测试和部署流程的一致性至关重要。因此,当某些容器不再需要时,我们应当及时停止并删除它们,以释放系统资源,提升工作效率。
本文将介绍如何停止并删除正在运行的 Docker 容器,包括单个、多个以及全部容器的操作方法。
2. 查看正在运行的容器
首先,我们需要确认当前系统中有哪些容器正在运行。可以使用如下命令列出所有运行中的容器:
$ docker container list
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d5e1395abb0c nginx "/docker-entrypoint.…" 24 hours ago Up 3 minutes 80/tcp nginx_Cont
37e8afba61e8 redis "docker-entrypoint.s…" 24 hours ago Up 14 minutes 6379/tcp redis_Cont
1c36849daf98 ubuntu "/bin/bash -c 'sleep…" 24 hours ago Up 56 minutes Cont1
495b6da20c9e ubuntu "/bin/bash -c 'sleep…" 24 hours ago Up 6 minutes ubuntu_Cont
输出中包含以下信息:
CONTAINER ID
:容器唯一标识符IMAGE
:容器所基于的镜像COMMAND
:启动容器时执行的命令CREATED
:容器创建时间STATUS
:当前状态(运行时长)PORTS
:端口映射信息NAMES
:容器名称
也可以使用简写命令:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d5e1395abb0c nginx "/docker-entrypoint.…" 24 hours ago Up 3 minutes 80/tcp nginx_Cont
37e8afba61e8 redis "docker-entrypoint.s…" 24 hours ago Up 14 minutes 6379/tcp redis_Cont
1c36849daf98 ubuntu "/bin/bash -c 'sleep…" 24 hours ago Up 56 minutes Cont1
495b6da20c9e ubuntu "/bin/bash -c 'sleep…" 24 hours ago Up 6 minutes ubuntu_Cont
3. 停止运行中的 Docker 容器
使用 docker stop
命令可以停止一个或多个运行中的容器。
3.1 停止单个容器
可以通过容器 ID 或名称来停止单个容器。例如:
$ docker stop 37e8afba61e8
37e8afba61e8
也可以使用容器名称:
$ docker stop redis_Cont
redis_Cont
✅ 推荐使用名称,更易识别,避免 ID 混淆。
3.2 停止多个容器
可以一次停止多个容器,只需在命令中列出多个 ID 或名称即可:
$ docker stop 1c36849daf98 d5e1395abb0c 495b6da20c9e
1c36849daf98
d5e1395abb0c
495b6da20c9e
3.3 停止所有容器
要一次性停止所有运行中的容器,可以使用以下命令:
$ docker stop $(docker ps -aq)
d5e1395abb0c
37e8afba61e8
1c36849daf98
495b6da20c9e
⚠️ 注意:docker ps -aq
会列出所有容器(包括非运行状态),但搭配 docker stop
使用时,只会对运行中的容器生效。
4. 删除 Docker 容器
停止容器后,我们可以使用 docker rm
命令将其从系统中删除。
4.1 删除单个容器
$ docker rm d5e1395abb0c
d5e1395abb0c
也可以使用名称:
$ docker rm redis_Cont
redis_Cont
⚠️ 注意:只有已停止的容器才能被删除,否则会报错。
4.2 删除多个容器
$ docker rm 495b6da20c9e 37e8afba61e8 1c36849daf98
495b6da20c9e
37e8afba61e8
1c36849daf98
4.3 删除所有容器
要删除所有容器,可以使用以下命令:
$ docker rm $(docker ps -aq)
2f803cde883f
db801fa0ebce
5. 一条命令停止并删除容器
如果希望一步到位,可以使用 docker rm -f
命令,它会强制停止并删除容器。
5.1 删除单个容器
$ docker rm -f test_Cont
test_Cont
5.2 删除所有容器
$ docker rm -f $(docker ps -q)
1cfcef7b368d
8839b7fee01d
907ccc7f9897
✅ 推荐用法:该命令适用于清理测试环境或快速重置状态。
⚠️ 警告:-f
参数会直接终止容器进程,可能造成数据丢失,请确保容器中无重要未持久化数据。
6. 总结
操作 | 命令 |
---|---|
查看运行中的容器 | docker ps |
停止单个容器 | docker stop <容器ID/名称> |
停止多个容器 | docker stop <容器ID1> <容器ID2> |
停止所有容器 | docker stop $(docker ps -aq) |
删除单个容器 | docker rm <容器ID/名称> |
删除多个容器 | docker rm <容器ID1> <容器ID2> |
删除所有容器 | docker rm $(docker ps -aq) |
一步停止并删除单个容器 | docker rm -f <容器ID/名称> |
一步停止并删除所有容器 | docker rm -f $(docker ps -q) |
通过以上方法,你可以根据实际需求灵活地停止并删除 Docker 容器。无论是开发调试、自动化脚本还是环境清理,这些命令都十分实用。建议将常用组合保存为 shell 别名或脚本,提升操作效率。