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

将图像推送到docker hub

顾赞
2023-03-14

我还不太了解dockerhub。我得到了以下案例:

  • 我为中心标记了几张图片

docker标签myImageA myuser/myrepo: 1

docker标签myImageB myuser/myrepo: 1

docker标签myImageC myuser/myrepo: 1

然后我用docker push myuser/myrepo推送它们

现在,当删除所有本地图像并再次拉入自己的docker repo时,当我执行docker images时,只有一个条目:

myuser/myrepo

我希望能够将单个图像推送到docker hub。除此之外,我只能查看我推的标签(最新的、1或其他)。

问题:docker pushpush为repo名称空间标记的所有图像吗?或者有没有办法把一张图片推到回购协议上,然后一张一张地拉出来?

共有2个答案

晋弘义
2023-03-14

一次只有一个图像具有给定的标签/标签。当您运行docker标签myImageC myuser/myrepo时,图像B丢失了标签,并且docker推送仅推送了单个最近标记的图像。如果您为该标签提供了不同的图像并推送了它,它将用您推送的内容替换Docker Hub上以前的内容。

如果这些图像确实不同,最佳做法是将它们作为单独的名称推送,例如,myuser/myimageC。也不要忘记图像名称的“标签”部分;用版本号或构建细节标记图像是很常见的(例如,如果您同时构建了同一事物的基于Alpine和Ubuntu的图像),在许多环境中,默认的:最新的标记作为移动目标会带来问题。

罗俭
2023-03-14

我记得我在docker的第一步,也清楚地记得这场小小的斗争。

创建图像时:

docker build -t <docker_hub_user_name>/<image_name>:<tag_name> /path/to/dockerfile

该图像与您指定的标记一起注册。另外,你可以在不使用-t选项的情况下创建图像,这样会生成一个随机id的图像,以后可以重新标记。

如果您标记了图像:

docker标签myImageA myuser/myrepo: 1

docker标签myImageB myuser/myrepo: 1

docker标签myImageC myuser/myrepo: 1

Docker标签的工作原理如下:

"docker tag" requires exactly 2 arguments.
See 'docker tag --help'.
Usage:  docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

因此,您主要使用不同的图像来标记相同的图像。或者,你将三个不同的图像命名为一个图像是什么。您正在将三个不同的图像覆盖到myuser/myrepo:1中。

Docker中心使用

所以回答你的问题:

问题:docker会推送所有为repo命名空间标记的图像吗?或者有没有办法把一张图片推到回购协议上,然后一张一张地拉出来?

您必须独立地将每个图像推送到docker hub帐户或docker注册表服务器。尽管你可以用一个管道组件,用一句话推送你所有的docker图片。用一个docker命令无法一次推送所有本地数据。

 类似资料:
  • 问题内容: 我已经创建了自己的docker文件(该文件运行一个显示“ helloworld”的shell脚本)。图像是“ hellodocker”,标签是“ mytag”,我现在拥有: 如何将Docker映像推送到dockerhub?我用。这给出了“无此类ID”错误。我想念什么?提前致谢。 问题答案: 您要么在构建时就将其标记为标签,例如 或创建绑定到同一图像的新标签,即

  • 我有一个简单的Spring Boot应用程序。我试图用jib maven插件创建它的docker图像。但当我构建这个应用程序时,它失败了,出现了401个未经授权的异常。但是我在日志中正确地给出了所有配置,我可以看到它被正确地读取了,但是在推送其失败时,图像出现了I/O错误。。 我正在使用

  • 我有一个詹金斯在一个独立的视窗7服务器上。我们有一个请求添加一个构建作业来构建一个项目,该项目生成一个焦油球格式的Docker映像,并将该映像推送到驻留在OpenShift中的远程Docker注册表中。 试图找到一个詹金斯插件,可以做到这一点。发现Docker Common插件有一些命令,但据我所知,它只能将图像从Docker注册表推送到另一个注册表。 有没有指南可以让我通过独立的jenkins将

  • private registry在docker 1.10.3的基础上工作得很好,但在docker更新到1.12.0后,我无法拉/推映像。 我已将/etc/sysconfig/docker修改为: 或 更重要的是,我只是运行一个简单的命令来启动私有注册表进行测试,其他的都是默认的: 未配置代理。总而言之,它只是一个测试的安静的样本环境。

  • 你好,我想上传多张图片到firebase。目前我可以上传1张图片。尽管如此,我还是决定将所有内容作为HTML,比如标题、描述和图像,放在一个webview中,并从那里显示出来。目前,这项工作还不错,我在firebase中有一个字符串,包含所有这些内容: 不过,正如您所见,这只是本地存储的工作形式。如何下载这些图像并用正确的firebase图像URL替换图像src。

  • 问题内容: 我是AWS的新手。我想在AWS ECS容器实例上设置私有Docker存储库。我创建了一个名为的存储库。AWS显示的示例推入命令正在运行。 但是,通过此命令,我构建并推送了一个名为的映像,我想构建一个名为的映像。所以我将命令更改为: 这应该可以,但是不能。重试一段时间后,出现错误: AWS真的需要我要推送的每个映像专用的存储库吗? 问题答案: 在EC2容器注册需要一个像仓库要设置为你想要