Docker Compose 容器升级步骤

使用 Docker Compose 管理的容器如何安全升级到最新版本。

#type / howto #status / evergreen #tech / ops / docker

Docker Compose 容器升级步骤

[!info] related notes Docker MOC 镜像更新未生效排查 Vaultwarden prelogin 404 故障

核心概念

Docker 容器不会自动升级。即使你的 compose.yaml 写的是 image: xxx:latest,容器一旦创建就不会因为远端有新镜像而自动更新。

升级的本质是:拉取新镜像 → 删除旧容器 → 用新镜像重建容器

数据通过 volume 挂载持久化,所以重建容器不会丢数据。

标准升级流程

1. 确认当前版本

升级前先记录当前版本,方便对比和回滚:

docker exec <容器> <> --version
# 例如:docker exec vaultwarden /vaultwarden --version

2. 备份数据

这是最重要的一步。 找到数据目录后备份:

# 查看挂载路径
docker inspect <容器> --format '{{range .Mounts}}{{println .Source "->" .Destination}}{{end}}'

# 备份
sudo tar czf ~/<容器>-backup-$(date +%F-%H%M).tar.gz <数据目>

3. 拉取最新镜像

cd /opt/docker   # 进入 compose.yaml 所在目录
docker compose pull <服务>

如果 pull 所有服务:docker compose pull(不带服务名)。

4. 重建容器

docker compose up -d <服务>

Docker Compose 会自动检测到镜像已更新,执行 Recreate。

5. 验证

# 确认新版本
docker exec <容器> <> --version

# 查看日志是否正常
docker logs -f <容器>

快速命令汇总

cd /opt/docker
docker compose pull <服务>
docker compose up -d <服务>
docker logs -f <服务>

四条命令完成升级。

常见问题

compose.yaml 里写死了版本号

如果 image 写的是 vaultwarden/server:1.35.4 而不是 latest,需要先改成 latest 或新版本号,再 pull:

# 改前
image: vaultwarden/server:1.35.4

# 改后(二选一)
image: vaultwarden/server:latest
image: vaultwarden/server:1.36.0

升级后功能异常

检查是否需要同时更新环境变量。例如 Vaultwarden 升级后需要配置 DOMAIN 环境变量:

environment:
  - DOMAIN: "https://your-domain.com"

修改 compose.yaml 后同样用 docker compose up -d 重建即可。

想回滚到旧版本

如果升级出问题,改回旧版本号再重建:

image: vaultwarden/server:1.35.4
docker compose up -d <服务>

数据从备份恢复:

sudo tar xzf ~/xxx-backup-xxx.tar.gz -C /

实际案例:Vaultwarden 升级

2026-06-17 升级 Vaultwarden 从 1.35.2 → 1.36.0:

# 确认版本:Vaultwarden 1.35.2
docker exec vaultwarden /vaultwarden --version

# 备份
sudo tar czf ~/vaultwarden-data-backup-2026-06-17.tar.gz /opt/docker/vaultwarden/data

# 升级
cd /opt/docker
docker compose pull vaultwarden
docker compose up -d vaultwarden

# 确认版本:Vaultwarden 1.36.0
docker exec vaultwarden /vaultwarden --version

升级后浏览器扩展需要移除账户并重新登录,旧的 token 会因 DOMAIN 变更而失效。

详见 vaultwarden-prelogin-404

创建于 2026/6/17 更新于 2026/6/17