清理 docker engine 卸载残留需要依次移除二进制文件、配置目录、数据卷以及系统服务单元。执行 apt-get purge 或 yum remove 卸载软件包后,必须手动删除 /var/lib/docker 下的镜像和容器数据,并清理 /etc/docker 配置文件及 /var/log/docker* 日志文件,最后重启系统以确保内核模块完全释放。

如何彻底清除 Docker 的数据文件和配置
卸载软件包不会自动删除存储在磁盘上的镜像、容器、卷和网络数据。要彻底清除这些内容,需直接删除 /var/lib/docker 目录。同时,应检查并移除 /etc/docker 中的 daemon 配置文件以及 /var/log 下与 Docker 相关的日志文件,防止重启后产生冗余记录。

sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd sudo rm -rf /etc/docker sudo rm -rf /var/log/docker* sudo rm -rf /run/docker.sock sudo rm -rf /run/containerd
如何处理 Docker 的系统服务和依赖项
Docker 安装时通常会注册 systemd 服务单元和防火墙规则。即使软件已卸载,这些服务定义和 iptables/nftables 规则可能仍保留在系统中。需要手动停止并禁用相关服务,清理 /etc/systemd/system 中残留的 unit 文件,并重置网络过滤规则,以避免端口冲突或服务启动失败。

sudo systemctl stop docker.service docker.socket containerd.service sudo systemctl disable docker.service docker.socket containerd.service sudo rm -f /etc/systemd/system/docker.service sudo rm -f /etc/systemd/system/docker.socket sudo rm -f /etc/systemd/system/containerd.service sudo systemctl daemon-reload sudo iptables -F sudo ip6tables -F
卸载后重启为何仍检测到 Docker 进程占用资源
如果在执行完上述清理步骤后重启系统,发现仍有 dockerd 或 containerd 进程运行,通常是因为 systemd 缓存未刷新或内核模块未被正确卸载。此时需再次执行 systemctl daemon-reload 强制重新加载服务配置,并检查是否有残留的 kmod 模块(如 overlay、br_netfilter)仍在内存中。若确认无业务需求,可手动 rmmod 这些模块以释放内核资源。











