CentOS7完全卸载Docker全攻略

Docker 已成为现代云原生架构的核心组件,但在某些情况下,比如需要重新安装 Docker、升级版本或切换到其他容器管理工具时,彻底卸载 Docker 并清理相关数据成为必要步骤。本文将针对 CentOS 7 操作系统,详细梳理并扩展 Docker 卸载的完整流程,确保系统环境干净无残留。


卸载前的准备工作:确保容器和镜像不再使用

卸载 Docker 前,必须先确认没有任何运行中的容器和正在使用的 Docker 镜像,否则可能导致后续操作失败或数据残留。

1. 停止并杀死所有运行中的容器

终止所有正在运行的 Docker 容器:

bash 复制代码
docker ps -q | xargs -r docker kill

说明: docker ps -q 会列出所有运行中容器的 ID,xargs -r 确保只有在有容器 ID 时才执行命令,避免报错。

2. 删除所有容器(包括已停止状态)

清理所有容器:

bash 复制代码
docker ps -a -q | xargs -r docker rm

3. 删除所有镜像

清除所有 Docker 镜像,释放磁盘空间:

bash 复制代码
docker images -q | xargs -r docker rmi -f

注意: 使用 -f 参数强制删除,避免因镜像被依赖而删除失败


停止 Docker 服务及其相关套接字

卸载之前,要确保 Docker 服务完全停止,避免服务正在使用使卸载失败。

bash 复制代码
sudo systemctl stop docker.service
sudo systemctl stop docker.socket

执行后,可验证 Docker 服务状态,确认已停止:

bash 复制代码
sudo systemctl status docker.service
sudo systemctl status docker.socket

清理系统中的 Docker 目录和数据

Docker 存储数据的目录非常多,包括配置文件、运行时数据、日志以及容器镜像等。彻底清理这些目录,才能避免残留数据影响后续环境。

1. 删除 Docker 配置目录

bash 复制代码
sudo rm -rf /etc/docker

2. 删除运行时数据目录

bash 复制代码
sudo rm -rf /run/docker

3. 删除容器存储和镜像数据

bash 复制代码
sudo rm -rf /var/lib/docker

4. 删除可能存在的 Dockershim 目录(一般用于 Kubernetes 集成)

bash 复制代码
sudo rm -rf /var/lib/dockershim

5. 解除挂载占用(如有报错无法删除直到先卸载挂载点)

bash 复制代码
sudo umount /var/lib/docker/devicemapper

提示: 使用 df -hmount | grep docker 来查找被挂载的目录


四、卸载 Docker 相关软件包

CentOS 7 使用 yum 作为包管理工具,可以方便地查询和卸载已安装的 Docker 相关软件。

1. 查询已安装的 Docker 相关软件包

bash 复制代码
sudo yum list installed | grep -i docker

2. 卸载 Docker 相关软件包

执行卸载命令,一次清理所有相关的 Docker 组件及依赖软件:

bash 复制代码
sudo yum remove -y 'docker*'
sudo yum remove -y containerd.io.x86_64

说明: 使用通配符 'docker*' 可以一并卸载所有以 docker 开头的软件包,containerd.io 是 Docker 的底层容器运行时,也需卸载。


验证卸载结果

卸载完成后,检查 Docker 是否已完全移除:

bash 复制代码
docker --version

如果输出类似 command not found,说明 Docker 已成功卸载。

此外,确认 Docker 服务是否仍在运行:

bash 复制代码
sudo systemctl status docker.service

正常情况下应显示未找到或停止状态。


小结

  • 确保容器停止并全部删除
  • 删除所有镜像释放空间
  • 停用 Docker 服务,避免卸载冲突
  • 清理所有存储目录,防止残留数据
  • 卸载系统中所有 Docker 软件包
  • 验证卸载彻底,保持系统干净

总结与建议

通过以上步骤,您已成功在 CentOS 7 系统上彻底卸载 Docker,并清理了所有容器、镜像和相关数据。这种深度清理确保后续重新安装或更换容器管理工具时,不会受到原有 Docker 环境的干扰。

相关推荐
Waitccy2 小时前
K8s:概念、特点、核心组件与简单应用
云原生·容器·kubernetes
咸鱼睡不醒_4 小时前
CentOS7系统安装Docker教程
运维·docker·容器
Java后端何哥4 小时前
Docker 镜像、容器和 Docker Compose的区别
docker·容器·docker镜像·dockercompose
Yang三少喜欢撸铁5 小时前
【通过Docker快速部署Tomcat9.0】
linux·运维·服务器·docker·容器·tomcat
颇有几分姿色5 小时前
Nacos 2.0.2 在 CentOS 7 上开启权限认证(含 Docker Compose 配置与接口示例)
linux·docker·centos
李菠菜5 小时前
利用Harbor代理缓存镜像实现内网镜像加速
docker·容器
李菠菜5 小时前
iptables限制CentOS互联网访问,仅允许局域网通信
linux·运维·centos
用户828813270616 小时前
2025 轻松部署 Odoo 18 社区版:从手动配置到智能化工具
docker
xbronze6 小时前
CentOS 7部署K8S集群
docker·kubernetes