Docker 彻底卸载指南CentOS/Ubuntu 双系统 5 步清理残留文件当 Docker 环境出现版本冲突、安装失败或需要迁移时常规的卸载命令往往无法彻底清理系统。残留的配置文件、依赖项和缓存文件可能导致新安装的 Docker 出现各种诡异问题。本文将提供一套完整的解决方案覆盖 CentOS 和 Ubuntu 两大主流 Linux 发行版。1. 准备工作与状态检查在开始卸载前我们需要先确认当前 Docker 的运行状态和安装方式。不同安装方法如 apt/yum 安装、二进制包安装对应的清理步骤有所差异。检查 Docker 服务状态systemctl status docker如果服务仍在运行需要先停止sudo systemctl stop docker sudo systemctl disable docker查看已安装的 Docker 组件Ubuntu/Debian 系统dpkg -l | grep dockerCentOS/RHEL 系统rpm -qa | grep docker提示记录下这些输出结果后续卸载时需要针对性地移除这些包。2. 核心组件卸载2.1 Ubuntu/Debian 系统卸载对于基于 apt 的系统执行以下命令移除主程序sudo apt-get purge -y docker-ce docker-ce-cli containerd.io但这样还不够我们还需要清理相关依赖sudo apt-get autoremove -y --purge docker-*2.2 CentOS/RHEL 系统卸载对于 yum 包管理系统移除主程序的命令为sudo yum remove -y docker-ce docker-ce-cli containerd.io老版本 Docker称为 docker 或 docker-engine需要额外处理sudo yum remove -y docker docker-common docker-selinux docker-engine3. 残留文件深度清理无论哪种系统卸载包后都会留下大量配置文件和数据。以下是需要手动删除的关键目录目录路径内容类型删除命令/var/lib/docker容器和镜像数据sudo rm -rf /var/lib/docker/var/lib/containerdcontainerd 数据sudo rm -rf /var/lib/containerd/etc/docker配置文件sudo rm -rf /etc/docker/var/run/docker.sock套接字文件sudo rm -f /var/run/docker.sock~/.docker用户配置rm -rf ~/.docker完整清理脚本适用于两种系统#!/bin/bash echo Starting Docker deep clean... for dir in /var/lib/docker /var/lib/containerd /etc/docker; do [ -d $dir ] sudo rm -rvf $dir done [ -S /var/run/docker.sock ] sudo rm -v /var/run/docker.sock [ -d ~/.docker ] rm -rvf ~/.docker echo Cleanup completed.4. 依赖项与用户组清理4.1 移除 Docker 用户组如果之前创建过 docker 用户组现在应该移除sudo groupdel docker4.2 清理网络配置Docker 会创建自定义网络接口和 iptables 规则需要清理查看 Docker 网络接口ip link show | grep docker清理 iptables 规则sudo iptables -F sudo iptables -X sudo systemctl restart iptables # 或 ufw/防火墙服务4.3 移除仓库配置删除 Docker 的软件源配置Ubuntusudo rm /etc/apt/sources.list.d/docker*CentOSsudo rm /etc/yum.repos.d/docker*5. 验证与系统恢复完成上述步骤后建议执行以下检查验证卸载结果which docker || echo Docker binary not found docker --version || echo Docker not installed系统状态检查检查关键目录是否已清空ls -ld /var/lib/docker /etc/docker检查进程是否完全退出ps aux | grep -E docker|containerd可选系统还原如果需要完全恢复系统到安装前的状态可以考虑# Ubuntu sudo apt-get update sudo apt-get upgrade -y # CentOS sudo yum update -y常见问题解决方案在实际操作中可能会遇到以下问题文件被占用无法删除sudo lsof /var/lib/docker # 查看占用进程 sudo kill -9 PID # 结束相关进程权限不足问题sudo -i # 切换到root再执行删除残留的容器进程for cnt in $(docker ps -aq 2/dev/null); do docker rm -f $cnt done存储驱动差异 如果使用过 devicemapper 等存储驱动可能需要额外清理sudo dmsetup remove_all sudo wipefs -a /dev/mapper/docker-*通过这五个步骤的系统性清理可以确保 Docker 环境被彻底移除为新安装或系统恢复提供干净的基础环境。