在 Linux 系统中,关闭 Docker 服务及容器的指令如下,具体操作需根据需求选择:
1. 停止 Docker 容器
(1) 停止所有正在运行的容器
# 停止所有运行中的容器(推荐优雅关闭)
docker stop $(docker ps -q)
(2) 强制停止所有容器
# 强制终止容器(不等待清理,直接发送 SIGKILL)
docker kill $(docker ps -q)
(3) 停止单个容器
# 替换 <container_id> 为容器 ID 或名称
docker stop <container_id>
2. 删除已停止的容器
# 删除所有已停止的容器
docker rm $(docker ps -a -q)
3. 停止 Docker 服务
(1) 通过 systemctl
停止服务(适用于 systemd 系统,如 Ubuntu 16.04+、CentOS 7+)
sudo systemctl stop docker
(2) 通过 service
停止服务(适用于旧版 SysVinit 系统,如 CentOS 6)
sudo service docker stop
(3) 强制终止 Docker 守护进程
# 直接终止 dockerd 进程(慎用,可能导致数据不一致)
sudo killall dockerd
4. 禁用 Docker 服务(防止开机自启)
# 适用于 systemd 系统
sudo systemctl disable docker
5. 清理所有未使用的 Docker 资源
# 清理所有未使用的容器、镜像、网络和卷(需谨慎操作)
docker system prune -a --volumes
6. 使用 Docker Compose 管理容器
(1) 停止并删除 Compose 管理的容器
# 进入 Docker Compose 配置目录后执行
docker-compose down
(2) 仅停止容器(保留配置和数据)
docker-compose stop
7. 恢复出厂设置(彻底清理 Docker 环境)
-
停止并删除所有容器:
docker stop $(docker ps -q) && docker rm $(docker ps -a -q)
-
删除所有镜像:
docker rmi $(docker images -q)
-
删除所有网络和卷:
docker network prune -f docker volume prune -f
-
卸载 Docker 服务(可选):
# Debian/Ubuntu sudo apt remove --purge docker.io docker-compose # CentOS/RHEL sudo yum remove docker docker-engine docker.io
注意事项
- 数据备份:操作前备份重要数据(如
/var/lib/docker
目录)。 - 权限:需使用
sudo
或 root 权限执行命令。 - 系统兼容性:不同 Linux 发行版的命令可能略有差异(如
systemctl
vsservice
)。 - 风险提示:
docker kill
和docker system prune
会强制删除资源,可能导致数据丢失,建议先测试。
推荐方案
- 日常维护:使用
docker stop
和docker rm
清理容器。 - 彻底重置:结合
docker system prune -a --volumes
和卸载操作恢复环境。