centos上彻底卸载docker需分两步:先用yum/dnf卸载所有相关rpm包(如docker-ce、containerd.io等),再手动清理残留的配置、数据目录(/var/lib/docker)、selinux模块、用户组及systemd单元等运行时状态。

直接用 yum remove 只能卸掉 RPM 包,但 Docker 的配置、运行时状态、用户组、SELinux 模块等往往残留。要“干净卸载”,必须分两步走:先清包,再清状态。
停服务 + 查已装包
执行前确保没有容器在运行:
- 停止 Docker 服务:
sudo systemctl stop docker - 禁用开机自启:
sudo systemctl disable docker - 列出所有已安装的 Docker 相关包:
yum list installed | grep -i docker或rpm -qa | grep -i docker
常见包名包括:docker-ce、docker-ce-cli、containerd.io、docker-selinux、docker-common 等,不同安装方式(如官网 repo 或 CentOS Stream 自带)可能略有差异。
卸载 RPM 包(精准清除)
不要只卸 docker-ce,要一并清理配套组件:
- 执行完整卸载命令:
sudo yum remove -y docker-ce docker-ce-cli containerd.io docker-selinux docker-common - 若曾用
dnf(CentOS Stream 8+),改用:sudo dnf remove -y docker-ce docker-ce-cli containerd.io - 卸载后再次运行
rpm -qa | grep -i docker,应无输出
删除残留运行时与配置
RPM 卸载不碰以下路径,必须手动清理:
- 数据目录(含镜像、容器、卷):
sudo rm -rf /var/lib/docker - 运行时套接字与临时文件:
sudo rm -rf /var/run/docker.sock /run/docker - 配置目录:
sudo rm -rf /etc/docker - SELinux 模块(若存在):
sudo semodule -r docker 2>/dev/null;检查残留模块:semodule -l | grep docker - Docker 用户组:
sudo groupdel docker 2>/dev/null;验证:getent group docker应无返回
清理系统级痕迹
避免后续安装冲突,还需处理这些隐性残留:
- 清除 yum 缓存:
sudo yum clean all - 删除 Docker 的 yum 源配置:
sudo rm -f /etc/yum.repos.d/docker-ce.repo - 检查 systemd 单元残留:
systemctl list-unit-files | grep docker;若有disabled状态单元,可执行sudo systemctl daemon-reload刷新 - 确认无残留进程:
ps aux | grep -i 'docker\|containerd',如有则kill -9强制终止
完成后,执行 docker --version 和 which docker 都应提示命令未找到,ls /var/lib/ | grep docker 也应为空。











