Docker Compose 镜像升级 Workflow


  1. 下载更新的 docker-compose.yml 文件,并于旧的文件进行文本比对,可以借助一些工具,将更新部分追加进去,并覆盖保存到原文件内。
  1. 停止运行需要升级的容器:
1
docker compose down
  1. 拉取更新:
1
docker compose pull

注意: 此步骤可能会对网络有一定的要求,如果失败可能会提示“net/http: TLS handshake timeout”等内容,参考如下文章解决:

  1. 等待更新拉取完成后,重新启动容器即可:
1
docker compose up -d

案例(immich 升级 1.129.0 至 1.131.1):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
vestin@Ves-Mac immich-app % ls
_bak geodata library
docker-compose.yml i18n-iso-countries postgres

vestin@Ves-Mac immich-app % docker compose down
[+] Running 5/5
✔ Container immich_machine_learning Removed 0.8s
✔ Container immich_server Removed 0.8s
✔ Container immich_redis Removed 4.4s
✔ Container immich_postgres Remov... 3.9s
✔ Network immich_default Removed 0.1s

vestin@Ves-Mac immich-app % docker compose pull
[+] Pulling 4/4
✘ immich-machine-learning Error context... 26.4s
✔ redis Pulled 0.5s
✘ immich-server Error Head "https://ghc... 26.4s
✔ database Pulled 0.5s
Error response from daemon: Head "https://ghcr.io/v2/immich-app/immich-server/manifests/release": net/http: TLS handshake timeout

vestin@Ves-Mac immich-app % orb restart docker

vestin@Ves-Mac immich-app % docker compose pull
[+] Pulling 36/4
✔ database Pulled 4.0s
✔ immich-machine-learning Pulled 16030.5s
✔ immich-server Pulled 16115.4s
✔ redis Pulled 3.9s

vestin@Ves-Mac immich-app % docker compose up -d
[+] Running 5/5
✔ Network immich_default Created 0.2s
✔ Container immich_postgres Start... 1.6s
✔ Container immich_redis Started 1.6s
✔ Container immich_machine_learning Started 1.9s
✔ Container immich_server Started 2.0s