将图像推送到 docker 中心
Pushing images to docker hub
我还不太了解 dockerhub。
我得到以下案例:
- 我为中心标记了几张图片
docker tag myimageA myuser/myrepo:1
docker tag myimageB myuser/myrepo:1
docker tag myimageC myuser/myrepo:1
然后我用 docker push myuser/myrepo
推送它们
现在,当删除我所有的本地图像并再次拉取我自己的 docker 存储库时,当我执行 docker images
:
时将只有一个条目
myuser/myrepo
我希望能够将单个图像推送到 docker 中心。除此之外,我只能查看我推送的标签(最新,1 或其他)。
问题:docker push
是否会推送所有标记为回购命名空间的图像?或者有没有办法将单个图像推送到存储库并一个一个地拉取它们?
一次只有一张图片具有给定的 tag/label。当你 运行 docker tag myimageC myuser/myrepo
时,图像 B 丢失了标签,并且 docker push
只推送了单个最近标记的图像。如果您给另一个图像添加标签并推送它,它将用您推送的内容替换 Docker Hub 上之前的内容。
如果这些图像真的不同,最佳做法是将它们作为单独的名称推送,例如、myuser/myimageC
。也不要忘记图像名称的 "tag" 部分;用版本号或构建详细信息标记图像是很常见的(例如,如果您构建同一事物的 Alpine 和基于 Ubuntu 的图像),并且在许多环境中默认的 ...:latest
标记是移动目标会带来问题。
我记得我在 docker 的第一步,也清楚地记得这个小小的挣扎。
创建图像时:
docker build -t <docker_hub_user_name>/<image_name>:<tag_name> /path/to/dockerfile
该图像已使用您指定的标签注册。否则,您可以在不使用 -t 选项的情况下构建图像,这将生成一个具有随机 ID 的图像,稍后可以重新标记。
如果您标记图像:
docker tag myimageA myuser/myrepo:1
docker tag myimageB myuser/myrepo:1
docker tag 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 集线器使用 <myuser>/myrepo:1 将图像的根存储到您的帐户中,但在其他情况下,此段用于识别您的存储库主机。 myuser/<myrepo>:1 这是你的镜像名称,所以如果你使用的是应用程序 A、B 或 C,镜像名称应该不同 myuser/myrepo:<1> 如果最后一个元素用于对同一图像进行版本控制,则应该使用最后一个元素。它通常用于对其进行版本控制,并且有一些标签被用作默认标签,例如:last。如果您使用这个词 docker 将使用此 docker 图片的最新图片。
所以回答你的问题:
问题:docker push 是否会推送所有标记为 repo 命名空间的图像?或者有没有办法将单个图像推送到存储库并一个一个地拉取它们?
您必须将每个图像单独推送到您的 docker 中心帐户或 docker 注册服务器。尽管您可以使用管道命令用一句话推送所有 docker 图像。无法使用单个 docker 命令一次推送所有本地内容。
我还不太了解 dockerhub。 我得到以下案例:
- 我为中心标记了几张图片
docker tag myimageA myuser/myrepo:1
docker tag myimageB myuser/myrepo:1
docker tag myimageC myuser/myrepo:1
然后我用 docker push myuser/myrepo
现在,当删除我所有的本地图像并再次拉取我自己的 docker 存储库时,当我执行 docker images
:
myuser/myrepo
我希望能够将单个图像推送到 docker 中心。除此之外,我只能查看我推送的标签(最新,1 或其他)。
问题:docker push
是否会推送所有标记为回购命名空间的图像?或者有没有办法将单个图像推送到存储库并一个一个地拉取它们?
一次只有一张图片具有给定的 tag/label。当你 运行 docker tag myimageC myuser/myrepo
时,图像 B 丢失了标签,并且 docker push
只推送了单个最近标记的图像。如果您给另一个图像添加标签并推送它,它将用您推送的内容替换 Docker Hub 上之前的内容。
如果这些图像真的不同,最佳做法是将它们作为单独的名称推送,例如、myuser/myimageC
。也不要忘记图像名称的 "tag" 部分;用版本号或构建详细信息标记图像是很常见的(例如,如果您构建同一事物的 Alpine 和基于 Ubuntu 的图像),并且在许多环境中默认的 ...:latest
标记是移动目标会带来问题。
我记得我在 docker 的第一步,也清楚地记得这个小小的挣扎。
创建图像时:
docker build -t <docker_hub_user_name>/<image_name>:<tag_name> /path/to/dockerfile
该图像已使用您指定的标签注册。否则,您可以在不使用 -t 选项的情况下构建图像,这将生成一个具有随机 ID 的图像,稍后可以重新标记。
如果您标记图像:
docker tag myimageA myuser/myrepo:1
docker tag myimageB myuser/myrepo:1
docker tag 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 集线器使用 <myuser>/myrepo:1 将图像的根存储到您的帐户中,但在其他情况下,此段用于识别您的存储库主机。 myuser/<myrepo>:1 这是你的镜像名称,所以如果你使用的是应用程序 A、B 或 C,镜像名称应该不同 myuser/myrepo:<1> 如果最后一个元素用于对同一图像进行版本控制,则应该使用最后一个元素。它通常用于对其进行版本控制,并且有一些标签被用作默认标签,例如:last。如果您使用这个词 docker 将使用此 docker 图片的最新图片。
所以回答你的问题:
问题:docker push 是否会推送所有标记为 repo 命名空间的图像?或者有没有办法将单个图像推送到存储库并一个一个地拉取它们?
您必须将每个图像单独推送到您的 docker 中心帐户或 docker 注册服务器。尽管您可以使用管道命令用一句话推送所有 docker 图像。无法使用单个 docker 命令一次推送所有本地内容。