必须先彻底清理旧版残留再安装 docker engine,包括停止服务、卸载旧包、删除/var/lib/docker和/var/lib/containerd等数据目录、清除配置与用户组,最后通过官方仓库标准流程安装并验证。
要彻底清除旧版残留并安装 docker engine,关键是先做“断根式清理”,再走官方仓库标准流程。系统自带的 docker.io 或手动编译/第三方源装的版本,和官方 docker-ce 不兼容,不清理干净会导致服务起不来、命令冲突或权限异常。
一、停止服务并卸载所有旧包
先确保 Docker 服务已停,再批量移除常见旧组件:
- 执行
sudo systemctl stop docker(若已运行) - 运行卸载命令(无害,未安装的包会跳过):
sudo apt-get remove -y docker docker-engine docker.io containerd runc - 顺手清理自动依赖残留:
sudo apt-get autoremove -y
二、删除全部数据与配置目录
镜像、容器、卷、网络等默认存在 /var/lib/docker;containerd 有独立存储路径,两者必须同时清空,否则重装后可能复用旧数据引发异常:
sudo rm -rf /var/lib/dockersudo rm -rf /var/lib/containerd- 顺手删掉其他配置痕迹:
sudo rm -rf /etc/docker /run/docker.sock /var/run/docker.sock /usr/local/bin/docker*
三、清理用户组与残留文件
旧安装可能创建了 docker 用户组或软链接,不处理会导致新装后普通用户无法执行 docker run:
- 删除用户组:
sudo groupdel docker - 检查是否还有残留二进制或链接:
whereis docker和find /usr -name "*docker*" 2>/dev/null
对非系统关键路径(如/usr/local/bin/下)的结果可安全rm -f - 若有 systemd 自定义配置(如
/etc/systemd/system/docker.service.d/),整个目录可直接删
四、通过官方仓库安装 Docker Engine
确认清理完成(docker --version 应报 command not found),再执行标准四步安装:
- 更新并安装基础依赖:
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release - 添加 Docker 官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - 添加适配当前 Ubuntu 版本的仓库(如 24.04 Noble):
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - 安装引擎及配套工具:
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io - 启用服务并加当前用户到
docker组:sudo systemctl enable docker && sudo systemctl start docker && sudo usermod -aG docker $USER
(退出终端重登或执行newgrp docker生效)
验证:运行 docker run hello-world,看到欢迎信息即成功。整个过程不复杂但容易忽略残留,尤其 /var/lib/containerd 和用户组这两处,漏掉就可能白装。











