温馨提示×

centos怎样更新docker版本

小樊
40
2026-07-19 11:00:25
栏目: 智能运维

在 CentOS 上升级 Docker 版本,常见有两种情况:通过 yum 安装的 Docker(推荐)旧版 Docker(docker-engine / 手动安装)。下面按最常用、最稳妥的方式说明。


一、先确认当前 Docker 版本

docker --version
docker version

二、通过 yum 升级 Docker(最常见 ✅)

1️⃣ 卸载旧版本(如果有)

sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

这不会删除镜像、容器、卷(默认在 /var/lib/docker


2️⃣ 安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3️⃣ 添加 Docker 官方仓库(推荐)

sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

4️⃣ 查看可升级的 Docker 版本

yum list docker-ce --showduplicates | sort -r

5️⃣ 升级 Docker(推荐方式)

✅ 升级到最新稳定版

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

6️⃣ 重启 Docker

sudo systemctl restart docker

7️⃣ 验证升级结果

docker version

三、如果是 CentOS 7 + 旧版 Docker(docker-engine)

如果是非常老的版本,建议:

sudo yum remove docker docker-common docker-selinux docker-engine

然后按 第二部分 重新安装 Docker CE。


四、升级后常见问题

1️⃣ Docker 启动失败

sudo systemctl status docker
journalctl -u docker

常见原因:

  • 与旧 containerd 冲突
  • firewalld / SELinux

临时关闭 SELinux 测试:

setenforce 0

2️⃣ 升级后容器还在吗?

✅ 在
只要 /var/lib/docker 没被删除,容器和镜像都会保留。


五、CentOS 7 特别说明(⚠ 重要)

CentOS 7 已 EOL(2024 年停止维护)

建议:

  • 升级到 CentOS Stream 8 / 9
  • 或使用 AlibabaOS / Rocky / AlmaLinux

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

如果你能告诉我:

  • CentOS 版本(cat /etc/centos-release
  • 当前 Docker 版本
  • 是否是生产环境

我可以给你最安全、最适配的升级方案

0