最新的 docker 镜像并未指向来自私有本地注册表的真正最新镜像版本

最新的 docker 镜像并未指向来自私有本地注册表的真正最新镜像版本

我已经使用手动创建了私人本地 Docker 注册表https://hackernoon.com/create-a-private-local-docker-registry-5c79ce912620并将两个版本的自定义映像推送到其中。然后我删除了缓存映像并尝试从本地注册表中提取映像。问题是,当我提取最新版本时,它会提取版本 0.1 而不是 0.2。

输出如下docker images

REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
192.168.3.51:5000/ubuntu-avigdor-build-image   0.2                 2a11312a4409        12 minutes ago      1.2GB
192.168.3.51:5000/ubuntu-avigdor-build-image   0.1                 6c7519e8b4c9        6 days ago          990MB
192.168.3.51:5000/ubuntu-avigdor-build-image   latest              6c7519e8b4c9        6 days ago          990MB

如您所见,带有最新标签的图像的图像 ID 与带有 0.1 标签的图像的图像 ID 相同。这不是我想要的。

当我请求最新版本时,如何让 Docker 拉取 0.2 版镜像?我在推送和标记镜像时是否遗漏了什么?

答案1

“最新”只是另一个标签,实际上应该称为“默认”,但现在改变它已经太晚了。标签可以指向任何东西,不一定是最新版本。您可以决定将其指向最新的稳定版本。有些人避免使用任何最新标签,迫使人们选择他们想要使用的主要版本号,如果您正在执行 semver,这会有所帮助。

您可以通过推送带有该标签的图像清单来控制最新标签的值:

docker pull 192.168.3.51:5000/ubuntu-avigdor-build-image:0.2
docker tag  192.168.3.51:5000/ubuntu-avigdor-build-image:0.2 \
            192.168.3.51:5000/ubuntu-avigdor-build-image:latest
docker push 192.168.3.51:5000/ubuntu-avigdor-build-image:latest

相关内容