最近 Unraid 出现了一个问题。明明一个 Docker 应用已经有了新版本,但是在 Unraid 的 Docker 页面使用 “Check for updates” 按钮却无法找到新版本。在网上搜索这个问题,大部分是在讨论是 Unraid 在检查更新的时候会显示新版本 “Not avaiable”,我这里却是每个应用都是 “Up to date” 状态。鉴于网上找不到合适的方法解决这个问题,我们可以通过命令行来手动更新。

以频繁更新的 Gitlab 更新为例。首先查看现有镜像的版本:

1
2
3
4
$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
gitlab/gitlab-ce latest 7d0eb3299e71 2 weeks ago 2.25GB

然后我们尝试拉取最新的版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ docker pull gitlab/gitlab-ce

Using default tag: latest
latest: Pulling from gitlab/gitlab-ce
345e3491a907: Already exists
57671312ef6f: Already exists
5e9250ddb7d0: Already exists
7f815eeffff6: Pull complete
1a4fe87ef93e: Pull complete
eb13b56b9e19: Pull complete
2f19275b151e: Pull complete
84bbe8ae841a: Pull complete
0de204d1d029: Pull complete
Digest: sha256:dc40d3be9c6c60db0b02581e7caa824315748f0f746b507074f4a1934f9b3037
Status: Downloaded newer image for gitlab/gitlab-ce:latest
docker.io/gitlab/gitlab-ce:latest

拉取完成以后再次查看镜像版本:

1
2
3
4
5
$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
gitlab/gitlab-ce latest 6d2361b39196 39 hours ago 2.25GB
gitlab/gitlab-ce <none> 7d0eb3299e71 2 weeks ago 2.25GB

通过 ID 可以判定之前版本的 Gitlab 镜像已经替换成的更新版本(TAG),这时我们回到 Unraid 的 Docker 配置页面,点击 Gitlab 应用图标,然后选择 Edit,在任何一个配置(例如端口)上在末尾添加一个空格再删掉空格,这时下方的 “Apply” 按钮会从灰色变成橙色,我们点击 Apply,Unraid 会认为配置发生变更,因此会删除原来的容器,并从 gitlab/gitlab-ce:latest 创建新的容器。这里 latest 标签对应的镜像已经是我们拉取的新镜像,待执行完毕,Gitlab 就完成了更新。我们可以通过 ID 将旧版本的镜像删除:

1
2
3
4
5
6
7
8
9
10
$ docker image rm 7d0eb3299e71

Untagged: gitlab/gitlab-ce@sha256:cf35a173a11eda176abb0759b1be5314e1e3391ce7fe088376f72135edd72b22
Deleted: sha256:7d0eb3299e7198b68ba3bf9cd8253c507aa0665a47cc05c43bb1f660377f3442
Deleted: sha256:c55d2f174b33a0524f96fa6c0659c9c763dc74b2a6a0affb79846f6bf269d43b
Deleted: sha256:d8b3672a87a4c694d250444770b628448ba22261fbc792cfe9a17746b8731cb5
Deleted: sha256:5e62181bcd418eb278cfc388eec9b4d873b0caeab0c7344fd51d32fd003e5cee
Deleted: sha256:57ca7b519b521310019f532e2e0794d5e545623545171f8f0b68455d69a96150
Deleted: sha256:3706f27d038b54d14d5b198c04815ba15cd42749860bef787041ee27b620d8d7
Deleted: sha256:58e9132fd51591a363a1e2e5edf2f677a610b1ae94c8d5c235362a776b47dab7