全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-21 6 分钟 ✍️ juanwangdev

版本升级策略

Docker 版本升级需要谨慎规划,下面介绍升级策略和处理方法。

Docker Engine 升级

版本类型

  • CE (Community Edition):社区版,每季度发布
  • EE (Enterprise Edition):企业版,每年发布,支持 3 年

升级流程

Bash
# 1. 备份当前配置
cp /etc/docker/daemon.json backup/daemon.json.$(date +%Y%m%d)

# 2. 查看可用版本
apt-cache policy docker-ce

# 3. 停止 Docker
systemctl stop docker

# 4. 升级
apt-get update
apt-get install docker-ce=<VERSION>

# 5. 启动并验证
systemctl start docker
docker version
docker run hello-world

滚动升级

Swarm 集群

Bash
# 主节点升级
# 1. 停止 Docker
systemctl stop docker

# 2. 升级
apt-get install docker-ce=<VERSION>

# 3. 启动
systemctl start docker

# 工作节点逐个升级
# 确保集群可用

零停机升级

YAML
# docker-compose.yml
services:
  app:
    deploy:
      replicas: 3
      update_config:
        parallelism: 1      # 每次升级 1 个
        delay: 10s          # 延迟 10 秒
        failure_action: rollback  # 失败回滚
        order: start-first  # 先启动新容器

Breaking Changes 处理

查看变更日志

Bash
# Docker 发布说明
# https://docs.docker.com/engine/release-notes/

# 关注 Breaking Changes 部分

常见 Breaking Changes

版本变更影响
20.10默认 cgroups v2某些工具不兼容
23.0API 版本移除旧客户端不兼容
24.0存储驱动变更需要迁移数据

回滚策略

Bash
# 升级失败回滚
# 1. 停止 Docker
systemctl stop docker

# 2. 降级版本
apt-get install docker-ce=<OLD_VERSION>

# 3. 恢复配置
cp backup/daemon.json.$(date +%Y%m%d) /etc/docker/daemon.json

# 4. 启动
systemctl start docker

Compose 升级

升级流程

Bash
# 查看当前版本
docker compose version

# 升级(Docker Desktop 自带)
# 或手动安装
curl -SL https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-linux-x86_64 \
  -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

V1 → V2 迁移

Bash
# Compose V1 命令
docker-compose up -d

# Compose V2 命令
docker compose up -d

# 别名兼容
alias docker-compose='docker compose'

测试升级

预发环境测试

Bash
# 在预发环境先升级
# 验证所有功能正常

# 使用相同配置的生产数据

自动化测试

Bash
#!/bin/bash
# test-upgrade.sh

# 1. 部署当前版本
docker compose up -d

# 2. 运行测试
curl -f http://localhost:8080/health
if [ $? -ne 0 ]; then
  echo "Health check failed"
  exit 1
fi

# 3. 升级 Docker
apt-get install docker-ce=<VERSION>

# 4. 验证服务
docker compose up -d
curl -f http://localhost:8080/health

要点总结

  • Docker Engine 升级前备份配置,停止服务后升级
  • Swarm 集群滚动升级,工作节点逐个升级
  • update_config 配置滚动升级策略,失败自动回滚
  • 关注 Breaking Changes,预发环境测试后再生产升级
  • Compose V1 → V2 命令从 docker-compose 变为 docker compose

📝 发现内容有误?点击此处直接编辑

← 上一篇 日志聚合与监控栈
下一篇 → Docker 与 K8s 关系
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库