在 Ubuntu/Debian 系统上通过 apt
安装 Docker 时遇到依赖冲突或包缺失问题,通常源于旧版本 Docker 残留、第三方仓库干扰或系统依赖不完整。以下是系统化的解决方案,结合官方文档与最佳实践:
一、深度清理旧版本 Docker 包
1. 卸载所有可能冲突的包
# 卸载 Docker 官方包、社区包及遗留组件
sudo apt-get remove -y docker docker-engine docker.io containerd runc docker-ce docker-ce-cli containerd.io
# 清理非官方仓库安装的包(如 Ubuntu 默认仓库的 docker.io)
sudo apt-get purge -y docker.io docker-compose docker-doc podman-docker
关键说明:
purge
比remove
更彻底,会删除配置文件。- 必须覆盖
docker.io
(Ubuntu 默认容器工具)和podman-docker
(Podman 兼容层),它们与 Docker CE 冲突。
2. 清理残留数据与依赖
# 删除 Docker 数据目录(镜像/容器/卷)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
# 移除孤立依赖包
sudo apt-get autoremove -y --purge
sudo apt-get autoclean
注意事项:
/var/lib/docker
是 Docker 默认数据存储位置,残留文件可能导致新版本启动失败。autoremove
清除不再需要的依赖包,避免依赖树混乱。