要完全卸载 docker engine 并清理所有残留配置文件,需依次停止服务、禁用自启、杀进程、清容器、精准卸载包、删数据目录、除用户组及源配置;否则镜像、卷、socket、gpg 密钥等将残留致重装异常。
要完全卸载 docker engine 并清理所有残留配置文件,核心是“先停服务、再删包、后清目录、最后扫痕迹”。只运行一条 apt remove 或 apt purge 是远远不够的——镜像、卷、socket 文件、用户组、systemd 配置、gpg 密钥都会原封不动留下,重装时极易报错或行为异常。
停止服务并终止所有相关进程
避免文件被占用导致删除失败或不完整:
- 执行
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(若命令还能执行,说明服务未完全停稳)
精准卸载所有 Docker 相关软件包
Ubuntu/Debian 系统常见安装来源有 apt、snap、官方脚本,处理方式不同:
- apt 安装(最常见):
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - 顺手清理自动依赖:
sudo apt autoremove -y - 检查是否还有残留包:
dpkg -l | grep -i docker,对漏网之鱼单独apt purge - 若曾用 snap 安装过:
sudo snap remove docker - 若用过 get-docker.sh 脚本:
sudo rm -f /usr/bin/docker*和/etc/systemd/system/docker*.service
手动删除全部数据与配置目录
这些路径不会随包卸载自动清除,必须主动处理:
- Docker 运行时数据(含全部镜像、容器、卷、网络):
sudo rm -rf /var/lib/docker - containerd 独立存储:
sudo rm -rf /var/lib/containerd - 全局配置与 socket:
sudo rm -rf /etc/docker /run/docker.sock /var/run/docker.sock - 当前用户配置:
rm -rf ~/.docker - 其他零散痕迹:
sudo rm -rf /usr/local/bin/docker*、/lib/systemd/system/docker*.service、/etc/systemd/system/docker*.service.d
清理系统级残留项
防止新装时报“group exists”、“unit file already exists”等冲突错误:
- 删除 docker 用户组:
sudo groupdel docker 2>/dev/null - 移除 Docker 的 apt 源配置:
sudo rm -f /etc/apt/sources.list.d/docker*.list - 重载 systemd 配置:
sudo systemctl daemon-reload - 验证是否清干净:
docker --version应提示command not found;再运行find / -name "*docker*" 2>/dev/null | grep -E "(bin|lib|etc)"快速扫一遍关键路径











