4

编辑:我只是将此归咎于平台不一致。我现在已经放弃了向 Google Cloud Container Registry 推送,而是创建了一个 Ubuntu 虚拟机来代替它。由于前面所述的原因,我也投票结束了这个问题,而且这可能首先应该在服务器故障上被问到。感谢大家的帮助!

运行$ gcloud docker push gcr.io/kubernetes-test-1367/myapp结果:

The push refers to a repository [gcr.io/kubernetes-test-1367/myapp]
595e622f9b8f: Preparing
219bf89d98c1: Preparing
53cad0e0f952: Preparing
765e7b2efe23: Preparing
5f2f91b41de9: Preparing
ec0200a19d76: Preparing
338cb8e0e9ed: Preparing
d1c800db26c7: Preparing
42755cf4ee95: Preparing
ec0200a19d76: Waiting
338cb8e0e9ed: Waiting
d1c800db26c7: Waiting
42755cf4ee95: Waiting
denied: Unable to create the repository, please check that you have access to do so.

$ gcloud init结果是:

Welcome! This command will take you through the configuration of gcloud.

Settings from your current configuration [default] are:
[core]
account = <my_email>@gmail.com
disable_usage_reporting = True
project = kubernetes-test-1367
Your active configuration is: [default]

注意:这是Kubernetes: Unable to create repository的副本,但我尝试了他的解决方案,但对我没有帮助。我试过附加:v1,/v1和使用us.gcr.io

编辑:附加信息

$ gcloud --version
Google Cloud SDK 116.0.0

bq 2.0.24
bq-win 2.0.18
core 2016.06.24
core-win 2016.02.05
gcloud
gsutil 4.19
gsutil-win 4.16
kubectl
kubectl-windows-x86_64 1.2.4
windows-ssh-tools 2016.05.13

+

$ gcloud components update

All components are up to date.

+

$ docker -v
Docker version 1.12.0-rc3, build 91e29e8, experimental
4

9 回答 9

3

一个图像推送需要项目的管理员权限。我在尝试将新容器推送到团队项目的 GCR 时遇到了同样的问题,我可以通过更新我的权限来解决这个问题。

您可能还想看看docker-credential-gcr。希望有帮助。

于 2017-02-12T21:17:20.473 回答
2

您使用的是什么版本的 gcloud 和 Docker?

查看您的请求,似乎 Docker 客户端没有附加凭据,这可以解释拒绝访问。

我建议运行gcloud components update并查看问题是否重现。如果仍然存在,请随时与我们联系gcr-contactgoogle.com以便我们帮助您调试问题并解决您的问题。

于 2016-07-09T20:53:03.537 回答
2

我仍然无法从本地计算机推送 docker 映像,但使用我的帐户授权计算实例并从那里推送映像是可行的。如果您遇到此问题,我建议(为您自己)创建一个 Compute Engine 实例,授权一个gcloud auth可以推送容器的帐户,然后从那里推送。我的源代码位于 Git 存储库中,我可以从中提取代码。

于 2016-10-12T19:28:09.440 回答
1

感谢您添加 Docker 版本信息。将 Docker 降级到更稳定的版本(例如 1.11.2)有帮助吗?您是否运行过“docker-machine upgrade”?

于 2016-07-14T20:42:42.803 回答
0

您似乎正在尝试gcloud docker push从 Google Compute Engine 实例运行,而没有对 Google Cloud Storage 的读/写访问权限的适当安全范围(Google Container Registry 在后台存储您的容器图像)。

尝试创建另一个实例,但这次使用适当的访问范围,即:

gcloud compute --project "kubernetes-test-1367" instances create "test" --zone "us-east1-b" --machine-type "n1-standard-1" --network "default" --scopes default="https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring.write","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management","https://www.googleapis.com/auth/devstorage.full_control" --image "/debian-cloud/debian-8-jessie-v20160629" --boot-disk-size "10" --boot-disk-type "pd-standard" --boot-disk-device-name "test-1"

创建新实例后,通过 ssh 进入该实例,然后尝试重新运行该gcloud docker push gcr.io/kubernetes-test-1367/myapp命令

于 2016-07-09T20:49:26.623 回答
0

如果有人在尝试将 docker 映像推送到 gcr 时仍然遇到此问题,即使他们已经验证了应该有权这样做的帐户,请尝试gcloud auth configure-docker再次运行并推送。

于 2021-09-12T21:16:06.210 回答
0

这也可能是导致此问题的原因(就我而言):

Important: make sure the Compute Engine API is enabled for your project on the

来源:https ://pinrojas.com/2016/09/12/your-personal-kubernetes-image-repo-in-a-few-steps-gcr-io/

于 2017-03-17T01:06:54.420 回答
0

我检查了

gcloud auth list

查看我的应用程序是活动帐户,而不是我的个人 Google 帐户。设置后

gcloud config set account example@gmail.com

我能够推动

gcloud docker -- push eu.gcr.io/$PROJECT_ID/my-docker:v1

所以我可以继续http://kubernetes.io/docs/hellonode/

于 2016-10-12T10:54:14.203 回答
0

我有一个类似的问题,结果我必须为该项目启用计费。当您拥有一个新的 Google Cloud 帐户时,您只能启用这么多的计费项目。一旦我这样做了,它就起作用了。

于 2017-01-30T01:56:42.180 回答