我正在使用gcloud进行部署,我发现了一种行为,我无法理解为什么会这样。
假设存在一个泊坞窗图像xyz
,所以我做的第一件事就是拉xyz
并按预期工作。
然后我通过docker tag redis gcr.io/project-name/redis
现在出现了疑问,即我正在以这种方式进行码头推进 - >
gcloud docker -- push gcr.io/practice-192718/redis
然后它正在工作
否则,如果我这样做 - >
gcloud docker -- push redis
它不起作用。
你能清楚这个对我的怀疑吗?还附上图片以便更好地澄清。答案 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存储库。