【问题标题】:Why does "docker push" push several images and where?为什么“docker push”会推送几个图像以及在哪里?
【发布时间】:2015-08-12 10:30:07
【问题描述】:

我在 docker hub 上有名为 alek/test 的私​​人仓库。 在我的 Mac 上:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
alek/test           0.1                 dc1a7cc41129        33 minutes ago      643 MB
node                0.12.7              9e20baae42c8        5 days ago          641.6 MB

$ docker push alek/test
The push refers to a repository [docker.io/alek/test] (len: 1)
dc1a7cc41129: Image successfully pushed 
537a913fe639: Image successfully pushed 
b40236e9037f: Image successfully pushed 
53c8b1d50397: Image successfully pushed 
e8c37c1e2189: Image successfully pushed 
68bbfd9543a7: Image successfully pushed 
9e20baae42c8: Image already exists 
8b74d7a75802: Image successfully pushed 
3383909e8f95: Image already exists 
e0919a8b95a8: Image already exists 
6ad0799af6bd: Image successfully pushed 
9213e81cb0f2: Image successfully pushed 
607e965985c1: Image successfully pushed 
1ff9f26f09fb: Image successfully pushed 
9a61b6b1315e: Image already exists 
902b87aaaec9: Image successfully pushed 
0.1: digest: sha256:a2b1d8a3b283f13e8d6a1407e886ca8ee62d93377949e050b9e05509ce6aaf86 size: 30568

刚刚发生了什么???为什么推送了几张图片?也是它们实际被推送的地方 - 我在 docker hub(屏幕)上的私人仓库没有任何变化。

我不确定我是否正确理解了 docker hub。 我想要的是从 Dockerfile 构建映像并将其推送到我的存储库,以使其可供客户将其拉到他身边并在容器中运行...

【问题讨论】:

  • 你能显示标签标签的内容吗?如屏幕截图所示,它位于 Repo Info 选项卡中。
  • 现在它在使用:<tag> 推送后包含正确的标签。但之前,在没有:<tag> 部分的情况下推送后,“标签”选项卡没有显示任何内容......

标签: docker dockerhub


【解决方案1】:

你没看错。

镜像中的每一层都有一个镜像,对应一个Dockerfile中的每条指令。 Docker 独立推送这些层。

由于您没有指定标签,Docker 将推送存储库中的所有标签(在本例中仅为 0.1)。任何有权访问您的存储库的人都应该能够使用docker pull alek/test:0.1 下载它。如果您查看 Hub 上的 tags 选项卡,您应该会在那里看到您的图像。

如果您在没有标签的情况下执行docker push,我认为它会推送整个回购 - 即所有图像。如果你在没有标签的情况下使用docker rundocker pull,它将使用latest 标签。所以我假设 0.1 标签在你的情况下被推送,但你需要说 docker pull alek/test:0.1 来拉它。

【讨论】:

  • 似乎在命令docker push alek/test -> docker push alek/test:0.1 中添加标签有效 - 我可以在 repo 中看到 0.1 标签。但是没有标签之前发生了什么?图片已上传到某个地方 - 它们还在吗?
  • 如果您不提供标签,则假定标签为latest
  • 正如您在我的问题中看到的那样,我没有标记为“最新”的图像。 docker repo 也没有显示任何标签。也许这是一个错误,如果没有指定标签并且没有标记为“最新”的图像,它不应该上传任何东西?
  • 不,预计会推送整个存储库和所有图像。拉的不是很对称,但不是bug。
  • 是的,你应该能够看到我认为的所有标签。可能是错误或缓存问题。
猜你喜欢
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
  • 2014-06-01
相关资源
最近更新 更多