为什么docker push仅在使用拉动图像的标签时工作

时间:2018-02-02 08:26:28

标签: amazon-web-services docker containers gcloud

我正在使用gcloud进行部署,我发现了一种行为,我无法理解为什么会这样。

假设存在一个泊坞窗图像xyz,所以我做的第一件事就是拉xyz并按预期工作。

然后我通过docker tag redis gcr.io/project-name/redis

为其添加了一个标记

现在出现了疑问,即我正在以这种方式进行码头推进 - >

gcloud docker -- push gcr.io/practice-192718/redis

然后它正在工作

否则,如果我这样做 - >

gcloud docker -- push redis

它不起作用。

你能清楚这个对我的怀疑吗?还附上图片以便更好地澄清。

enter image description here

2 个答案:

答案 0 :(得分:1)

以下命令gcloud docker -- push redis未从Google容器注册表中提取图像。这是拉redis image from dockerhub,这是默认的docker注册表。

默认情况下,如果图像未使用注册表网址标记,则docker会从dockerhub中提取/推送图像。

要将图像推送到GCR,您需要使用GCR存储库URL进行标记。这在Pushing and Pulling Images

中明确记录
  

在将Docker镜像推送到任何私有注册表之前,您需要使用注册表名称标记该图像。

答案 1 :(得分:0)

问题在于您尝试向公众redis repo推送,而不是您自己的私人回购。运行gcloud pull时,您很可能从hub.docker.com下载官方redis容器,其中托管了大多数官方容器。 Push使用相同的逻辑来确定您正在谈论的回购。它没有推动,因为你没有被授权推送到官方redis存储库。