编辑:我只是将此归咎于平台不一致。我现在已经放弃了推向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
答案 0 :(得分:2)
您使用的是什么版本的gcloud和Docker?
查看您的请求,似乎Docker客户端没有附加凭据,这可以解释访问拒绝。
我建议运行gcloud components update
并查看问题是否重现。如果仍然如此,请随时gcr-contact
google.com
与我们联系,以便我们帮助您调试问题并解决问题。
答案 1 :(得分:2)
我仍无法从本地计算机上推送泊坞窗图像,但是使用我的帐户授权计算实例并从中推送图像。如果您遇到此问题,我建议您创建一个Compute Engine实例(为您自己),授权一个可以推送容器的gcloud auth
帐户,并从那里推送。我在Git存储库中有我的源代码,我可以从中获取代码。
答案 2 :(得分:2)
项目的first image push requires admin rights。我在尝试将一个新容器推送到GCR进行团队项目时遇到了同样的问题。
您可能还想查看docker-credential-gcr。希望有所帮助。
答案 3 :(得分:1)
感谢您添加Docker版本信息。将Docker降级到更稳定的版本(例如1.11.2)是否有帮助?你有没有运行#docker-machine upgrade&#39;?
答案 4 :(得分:0)
您似乎在尝试从Google Compute Engine实例运行gcloud docker push
而没有对Google云端存储的适当安全范围的读/写访问权限(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
命令
答案 5 :(得分:0)
我检查了
gcloud auth list
看我的申请是有效帐户,而不是我的个人Google帐户。设置后
gcloud config set account example@gmail.com
我能够推
gcloud docker -- push eu.gcr.io/$PROJECT_ID/my-docker:v1
答案 6 :(得分:0)
我遇到了类似的问题,事实证明我必须为项目启用结算功能。如果您拥有新的Google Cloud帐户,则只能通过结算启用这么多项目。一旦我做到了,它就有用了。
答案 7 :(得分:0)
这也可能是造成这个问题的原因(在我的情况下):
Update B
SET Status = 1
From Table_B as B
INNER JOIN Table_A as A
ON A.Pid = B.Pid
WHERE B.Status = 0
来源:https://pinrojas.com/2016/09/12/your-personal-kubernetes-image-repo-in-a-few-steps-gcr-io/