彻底卸载旧版 docker 需分两步:先用 yum remove 或 apt purge 卸载所有相关安装包,再手动清理 /var/lib/docker、/etc/docker、/run/docker.sock、selinux 模块、docker 用户组及 systemd 单元等残留。

卸载旧版 Docker 并清理残留,核心就两点:先清掉安装包,再手动删掉运行时数据和配置。只用 yum remove 或 apt purge 是不够的,镜像、容器、卷、socket 文件、用户组、SELinux 模块这些都不会被自动删除。
停止服务并确认无运行中容器
避免文件被占用导致清理失败或不完整:
- 执行
sudo systemctl stop docker docker.socket containerd - 禁用开机自启:
sudo systemctl disable docker docker.socket containerd - 强制终止残留进程:
sudo pkill -f 'docker|containerd' - 清空所有容器:
docker ps -aq | xargs -r docker rm -f
按系统类型精准卸载安装包
不同发行版的包管理器和默认包名略有差异,需对应操作:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
-
CentOS/RHEL:运行
sudo yum remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-selinux docker-common;若为 CentOS Stream 8+,改用dnf remove -
Ubuntu/Debian:用
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin,再执行sudo apt autoremove -y -
Armbian(基于 Debian):可先
sudo apt-get remove --auto-remove docker docker-engine docker.io,再sudo apt-get purge docker-ce
手动删除核心残留目录与文件
这些路径不会随包卸载而清除,必须主动处理:
- 运行时数据(含全部镜像、容器、卷、网络):
sudo rm -rf /var/lib/docker /var/lib/containerd - 配置与 socket:
sudo rm -rf /etc/docker /run/docker.sock /var/run/docker.sock - 当前用户配置:
rm -rf ~/.docker - SELinux 模块(仅 CentOS/RHEL):
sudo semodule -r docker 2>/dev/null - Docker 用户组:
sudo groupdel docker 2>/dev/null
扫尾与验证是否清干净
防止重装时报错或行为异常,还需检查并清理零散痕迹:
- 删掉 Docker 的 yum 源配置:
sudo rm -f /etc/yum.repos.d/docker-ce.repo(CentOS)或sudo rm -f /etc/apt/sources.list.d/docker*.list(Ubuntu) - 清理 systemd 单元文件:
sudo rm -f /lib/systemd/system/docker*.service /etc/systemd/system/docker*.service.d,然后sudo systemctl daemon-reload - 清空 yum/apt 缓存:
sudo yum clean all或sudo apt clean && sudo apt autoclean - 验证结果:运行
docker --version、which docker、ls /var/lib/ | grep -i docker,都应提示命令未找到或无输出










