共计 968 个字符,预计需要花费 3 分钟才能阅读完成。
使用 docker 有时候为了方便拉下来的镜像是 latest 版本,但是迁移的时候,可能镜像更新了。这样的话,拉下来的镜像就和原来的不一致,如果启动报错了,就非常的麻烦。所以为了避免这种情况发生,最好使用指定版本。
万一真的出现了版本不一致不能启动的情况,首先就需要找到之前 latest
所对应的版本。这里以我这里的 linuxserver/freshrss
镜像为例:
docker inspect linuxserver/freshrss:latest
此时结果如下:
[
{
"Id": "sha256:7b384ece68d958ef0688ec7afb74bbc66cfbde2ffbb5a0bde59320eb040238b6",
"RepoTags": [
"linuxserver/freshrss:latest"
],
"RepoDigests": [
"linuxserver/freshrss@sha256:807e9bf3c9a887108375125a0b58a4251282ee40e331475e623b9504a6dbab1e"
]
}
]
比较重要的是 RepoDigests
中的结果 807e9bf3c9a887108375125a0b58a4251282ee40e331475e623b9504a6dbab1e
。
然后可以通过浏览器访问如下地址:
# 不同的镜像,替换 linuxserver/freshrss 部分即可
https://registry.hub.docker.com/v2/repositories/linuxserver/freshrss/tags?page=1&page_size=1000
这样可以查询 linuxserver/freshrss
所有的 tag。(这里的分页数据设置大一点,方便查询到所有的标签)
此时将访问得到的结果使用浏览器插件 JSON-handle
或者其他 json 处理工具打开,再 ctrl + f
查询上面查到 hash 值。
需要注意的是,也有可能找不到对应的标签,这种情况可能是所有者将这个标签删除了。
这里索引是从 0 开始的,那么这条记录索引为 33,得到这个标签在 dockerhub 的位置就是 34。并且,dockerhub 基本都是 25 个镜像一页,那么直接找到第 2 页的第 9 个镜像即可。
如果 hash 值一致说明就找对了,如果不一样,可能是数错了。
提醒:本文发布于217天前,文中所关联的信息可能已发生改变,请知悉!