当前位置: 首页 > 知识库问答 >
问题:

如何让Docker中心对“最新”和“vX. Y”使用相同的图像?

太叔豪
2023-03-14

Docker Hub从这个源repo为我构建了一个Syncthing映像。

我标记了最新的提交v0。13.5,但Docker建造了两次:一次用于最新版本,一次用于v0。13.5.

为什么?它不应该能够找出源是相同的吗?我只是在我的Dockerfile中做了一些愚蠢的事情,破坏了缓存吗?我是否需要向Docker Hub暗示这应该是两个具有相同校验和但不同标签的图像?

我想到了两个Docker图像标签latestv0。两个git都指向相同的代码。Docker Hub不是也应该这样吗?如果有人试图拉取最新的,他们会拉取完全相同的标记为v0的图像。13.5?我知道如何拉/重新标记/推,但再一次,似乎必须有某种方法让Docker Hub自动完成这项工作。

生成设置:


共有2个答案

端木骞尧
2023-03-14

Latest只是“在没有指定特定标记/版本的情况下运行的最后一个构建/标记”。

如果您推送标记图像,它不会将当前标记图像替换为最新图像。如果您仅推送标记图像,则不会添加最新标签。

Docker Hub上的Automated Builds正在为主分支自动添加最新的标记。

孔睿
2023-03-14

借助一点魔法,Docker Hub可以做到这一点!巴勃罗·奇科·德·古兹曼帮助了我。

步骤:

  1. 添加一个名为“hooks/post_push”的文件
  2. 使hooks/post_push可执行、提交和推送
  3. 删除“分支”构建,但保留“标记”构建

现在,我推送的任何标签(例如,git-push--tags)都会自动生成,同样的图像也会被赋予最新的标签。

下面是我必须做的更改,以便将最新的“vX.Y”标记为meonkeys/syncthing图像也标记为latest

 类似资料:
  • 我为此创建了一个简单的测试项目,其中唯一的目标是获得一个版本nr以在每个新构建中增加。如果我浏览到创建的nginx服务器,就会显示版本nr(这在本地按预期工作)。 docker版本:1.11.2 docker-compose版本:1.7.1操作系统:使用docker-toolbox在CentOS 7和OS X 10.10上进行了测试 My Docker-compose.yml: 在我计算机上的一个

  • 问题内容: 我想将目录从Docker容器批量安装到我的工作站,因此当我从工作站编辑批量安装中的内容时,它也在容器中更新。通常,这对于测试和开发Web应用程序非常有用。 但是我在容器中获得了拒绝权限,因为容器和主机中的UID不同。Docker的最初目的不是应该使开发变得更快,更容易吗? 当将Docker容器批量安装到我的工作站时,这个答案可以解决我面临的问题。但是通过这样做,我对生产中不需要的容器进

  • 根据反馈更新 对于等于或高于17.03的Docker版本,如何查看图像的图层?虽然我为早期的Docker系统找到了大量的解决方案(见这个问题),但现在还能这样做吗? 我特别感兴趣的是能够一次删除一层。我记得很久以前读过这篇文章(在Docker时代,大约12-18个月!)然而,我丢失了那个参考资料,在网上的任何地方都找不到。我从下面的第一个答案中了解到,中间层不再下载并报告丢失,但如果我下载了整个图

  • 我的docker映像构建在Jenkins CI服务器上,并被推送到我们的专用docker注册表。我的目标是提供使用docker-compose的环境,它总是启动图像的原始构建状态。 我总是使用命令从注册表中获取新的图像并启动它们。我相信我更喜欢的行为是在某个时间点之前按预期工作,但从那以后开始重新运行以前停止的容器,而不是每次都启动最初构建的映像。 有没有办法摆脱这种行为?这种方式会不会是连接在d

  • 我有多个微服务,我使用docker compose进行开发部署。当microservices代码库中有一些更改时,我会触发ci作业来重新部署它们。我有下面的脚本来做这件事。但每次我都必须从头开始构建所有图像,然后运行它们。完成所有这些操作后,我得到了图像。所以我使用最后一个脚本来删除它们。你有什么建议使这个过程更实用?是否有任何方法可以更新现有图像而不使用新的更改将其删除? 其他信息:我正在使用

  • 我创建了一个本地docker注册表,然后从docker hub中提取一些docker映像,然后将它们推送到本地注册表。现在我要删除我的本地图像。但这里的问题是,图像的是相同的,我无法删除它们。我寻找解决办法,但没有找到解决办法。 的输出: 来自后台进程的错误响应:冲突,无法删除映像810001CB03AF,因为它被标记在多个存储库中,使用-f强制执行错误:无法删除映像:[810001CB03AF]