在 CentOS 上升级 Docker 版本,常见有两种情况:通过 yum 安装的 Docker(推荐) 和 旧版 Docker(docker-engine / 手动安装)。下面按最常用、最稳妥的方式说明。
docker --version
docker version
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
这不会删除镜像、容器、卷(默认在
/var/lib/docker)
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo yum install -y docker-ce-<VERSION> docker-ce-cli-<VERSION> containerd.io
例如:
sudo yum install -y docker-ce-24.0.7 docker-ce-cli-24.0.7 containerd.io
sudo systemctl restart docker
docker version
如果是非常老的版本,建议:
sudo yum remove docker docker-common docker-selinux docker-engine
然后按 第二部分 重新安装 Docker CE。
sudo systemctl status docker
journalctl -u docker
常见原因:
临时关闭 SELinux 测试:
setenforce 0
✅ 在
只要 /var/lib/docker 没被删除,容器和镜像都会保留。
CentOS 7 已 EOL(2024 年停止维护)
建议:
Docker 官方对 CentOS 7 的支持也在逐步减少。
sudo yum remove docker docker-client docker-common
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl restart docker
如果你能告诉我:
cat /etc/centos-release)我可以给你最安全、最适配的升级方案 ✅