debian 11升级 docker ce 版本和 docker-compose 版本

warning: 这篇文章距离上次修改已过535天,其中的内容可能已经有所变动。

important update
参考 https://immich.app/docs/install/requirements ,immich 官方已经启用 docker-compose ,今后将不支持。请使用 docker compose, noted at 2024-06-24 09:54:52

昨天晚上将 immich 服务端从 v1.98.2 升级到 v1.106.4,花了一个多小时,因为整体上还是比较复杂的

  • docker 客户端和 docker-compose 版本过低,immich 最新的 compose 文件使用了 start_interval 语法, 使用 docker-compose config 检查语法时报错 Additional property start_interval is not allowed
  • 我用的是 github docker/copmpose 项目的 docker-compose 二进制,而不是 docker compose 子命令
  • pgdata 数据库以前使用 volume 形式挂载的,现在把路径写到了 .env 文件里,通过路径直接映射挂载的。我看了一下 immich release 发行描述,写了很多人都不仔细阅读immich 的更新日志,尤其是有 breaking changes 一些版本,用户按照自己的想法直接更新导致了一些 data loss,还是很惨痛的
  • 整个compose服务删除了一个容器
  • 升级之前备份 pgdata 和 model-cache 数据

昨晚更新 docker 和docker-compose版本之前用的版本,

  • docker: 20.10.17
  • docker-compose: Docker Compose version v2.6.0

升级过程:

# 先关闭 docker daemon 是个好习惯
$ sudo systemctl stop docker

# sudo apt-get update 之后直接安装最新版本的 docker ce 软件包
$ sudo apt-get install --only-upgrade docker-ce docker-ce-cli containerd.io

# 下面开始升级 docker-compose,我还是选择下载官方二进制到本地,然后赋予可执行权限,截止 2024-06-17 22:32:16,最新二进制是 v2.27.1,此处我下载的是 v2.27.0
$ curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" > ./docker-compose
# 备份一下旧的 docker-compose,版本是v2.6.0
$ sudo cp /usr/local/bin/docker-compose /usr/local/bin/docker-compose-v2.6.0
$ sudo mv ./docker-compose /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

几个命令,docker ce 和 docker-compose 都升级好了

  • docker ce 新版本:26.1.3
  • docker-compose 新版本:Docker Compose version v2.27.0

最后,我的 immich 服务端升级也非常顺利,成功升级到了 v1.106.4

已有 2 条评论

  1. 飘柔奥特曼 飘柔奥特曼

    我的immich是直接追最新的版本升级
    话说pg的那个目录改动,我以为之前版本就是那样我误操作了,然后我是直接inspect到容器的目录下,复制出来再直接使用的

    1. 是的,可以用 docker volume lsdocker volume inspect {your_volume_name} 快速获取在本机上的路径

添加新评论