无法卸载旧Docker版本,咨询升级至最新CE版本的安全性
解决旧版Docker升级至最新CE版本的安全方案
我之前升级早期Docker版本时也碰到过一模一样的Package 'docker' is not installed报错,完全不用慌——这是因为你提到的旧版本(1.12.3、17.05.0-ce)在Debian/Ubuntu系统上的包名根本不是docker,而是docker-engine、docker.io,甚至有些是直接通过二进制包手动安装的,所以apt-get remove docker找不到包是正常情况。
很多用户都遇到过这个问题,只要按下面的步骤操作,就能无冲突、安全地完成升级:
第一步:彻底清理所有旧版Docker组件
不管你当初是用哪种方式安装的,先把所有残留的旧组件和配置清干净(如果需要保留镜像/容器数据,先执行tar -czf docker-backup.tar.gz /var/lib/docker备份):
- 卸载所有可能的旧包:
sudo apt-get remove -y docker docker-engine docker.io containerd runc
- 清理残留的依赖和配置文件:
sudo apt-get autoremove -y --purge docker docker-engine docker.io containerd runc sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
- 如果是二进制安装的旧版本,还要手动清理可执行文件和服务配置:
sudo rm -f /usr/bin/docker /usr/bin/docker-containerd /usr/bin/docker-runc sudo rm -rf /etc/systemd/system/docker.service* sudo systemctl daemon-reload
第二步:安装最新版Docker CE
按官方标准流程配置仓库并安装:
- 安装依赖包,设置Docker的GPG密钥和apt仓库:
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装最新版Docker CE及配套工具:
sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
第三步:验证升级成功
执行测试命令确认Docker正常运行:
sudo docker run hello-world
如果能成功拉取并运行测试镜像,说明升级已经完成且无冲突。
额外安全建议
- 升级前务必备份重要的镜像、容器数据和配置文件,避免意外丢失;
- 如果你的系统是Ubuntu/Debian之外的发行版,调整仓库配置时要对应到自己的系统(比如CentOS用yum仓库);
- 安装完成后可以加入docker用户组,避免每次执行命令都加
sudo:sudo usermod -aG docker $USER,重新登录后生效。
内容的提问来源于stack exchange,提问作者Timothy Perrigo
相关产品推荐
相关产品推荐

