docker - 将图像推送到 docker hub
问题描述
我还不太了解 dockerhub。我得到了以下案例:
- 我为集线器标记了几个图像
码头工人标签 myimageA myuser/myrepo:1
码头工人标签 myimageB myuser/myrepo:1
码头工人标签 myimageC myuser/myrepo:1
之后我推他们docker push myuser/myrepo
现在,当我删除所有本地图像并再次拉出我自己的 docker repo 时,执行时将只有一个条目docker images
:
myuser/myrepo
我希望能够将单个图像推送到 docker hub。除此之外,我只能查看我推送的标签(最新的、1 或其他)。
问题:会docker push
推送所有标记为 repo 命名空间的图像吗?或者有没有办法将单个图像推送到存储库并一张一张地拉出来?
解决方案
我记得我在 docker 中的第一步,也清楚地记得这个小小的挣扎。
创建图像时:
docker build -t <docker_hub_user_name>/<image_name>:<tag_name> /path/to/dockerfile
该图像已使用您分配的标签注册。否则,您可以在没有-t选项的情况下构建图像,这将生成具有随机 id 的图像,以后可以重新标记。
如果您标记图像:
码头工人标签 myimageA myuser/myrepo:1
码头工人标签 myimageB myuser/myrepo:1
码头工人标签 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 hub 使用 < myuser >/myrepo:1 将映像的根存储到您的帐户中,但在其他情况下,此段用于标识您的存储库主机。myuser/< myrepo >:1 它是你的镜像的名称,所以如果你使用你的应用程序 A、B 或 C,镜像的名称应该不同,并且 myuser/myrepo:< 1 > 最后一个元素应该是用于版本控制相同的图像。它通常用于对其进行版本化,并且有一些默认使用的标签,例如:last。如果你使用这个词,docker 将使用这个 docker 镜像的最新镜像。
所以回答你的问题:
问题:docker push 会推送所有标记为 repo 命名空间的图像吗?或者有没有办法将单个图像推送到存储库并一张一张地拉出来?
您必须将每个图像独立推送到您的 docker hub 帐户或您的 docker 注册表服务器。尽管您可以使用管道命令用一句话推送所有 docker 图像。没有办法使用单个 docker 命令一次推送所有本地文件。
推荐阅读
- snowflake-cloud-data-platform - 如何查询雪花阶段元数据的最后修改列
- r - geom_bar 和 geom_point 条件颜色
- r - ggplot2中堆积条形图y方向的更改顺序,如序列所示
- javascript - 嗨,有人可以帮助我处理这个 ReactJS 代码
- javascript - Flask - POST 请求正在发送部分输入值
- git - git 每次拉取时都会生成一个新的 master.lock 文件
- python - 如何使用 Python 合并 JSON 中的数据
- android - Android 生命周期倒置
- storage - 这个计算正确吗?(车复制)
- java - 指定 Kafka Connect 连接器插件版本