首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Google Container Registry

如何使用Google Container Registry
EN

Stack Overflow用户
提问于 2015-07-05 16:58:10
回答 2查看 860关注 0票数 1

我尝试使用Google Container Registry,但它对我不起作用。

我写了下面的containers.yaml

代码语言:javascript
复制
$ cat containers.yaml
version: v1
kind: Pod
spec:
  containers:
    - name: amazonssh
      image: asia.gcr.io/<project-id>/amazonssh
      imagePullPolicy: Always
 restartPolicy: Always
 dnsPolicy: Default

我通过以下命令运行实例。

代码语言:javascript
复制
$ gcloud compute instances create containervm-amazonssh --image container-vm     --network product-network     --metadata-from-file google-container-manifest=containers.yaml --zone asia-east1-a --machine-type f1-micro

我设置了以下acl权限。

代码语言:javascript
复制
# gsutil acl ch -r -u <project-number>@developer.gserviceaccount.com:R gs://asia.artifacts.<project-id>.appspot.com

但是当docker从Google Container Registry拉取图像时,访问被拒绝。

代码语言:javascript
复制
#  docker pull asia.gcr.io/<project-id>.a/amazonssh
Pulling repository asia.gcr.io/<project-id>.a/amazonssh
FATA[0000] Error: Status 403 trying to pull repository <project-id>/amazonssh: "Access denied."
EN

回答 2

Stack Overflow用户

发布于 2015-07-09 03:24:06

您能从您的实例中验证您可以从Google Cloud Storage存储桶中读取数据吗?这可以通过以下方式进行验证:

代码语言:javascript
复制
$ curl -H 'Metadata-Flavor: Google' $SVC_ACCT/scopes
...
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/devstorage.read_only
...

如果是这样,请尝试:

在Google Compute Engine上,你可以在没有gcloud的情况下登录:

代码语言:javascript
复制
$ METADATA=http://metadata.google.internal./computeMetadata/v1
$ SVC_ACCT=$METADATA/instance/service-accounts/default
$ ACCESS_TOKEN=$(curl -H 'Metadata-Flavor: Google' $SVC_ACCT/token \
    | cut -d'"' -f 4)
$ docker login -e not@val.id -u _token -p $ACCESS_TOKEN https://gcr.io

然后再次尝试docker pull命令。

票数 4
EN

Stack Overflow用户

发布于 2015-08-27 11:59:37

您在这里的.a -id之后有一个额外的项目,不确定您是否以这种方式运行命令?

代码语言:javascript
复制
docker pull asia.gcr.io/<project-id>.a/amazonssh

container-vm有一个以根用户身份运行gcloud docker -a的cron作业,因此您应该能够以根用户身份运行docker pull

启动container-vm Docker容器的kubelet也知道如何使用GCR进行本机身份验证,因此它应该可以正常工作。

请随时通过gcr-contact@google.com联系我们。如果您可以包含您的project-id,并且可能包含您的container-vm中的/var/log/kubelet.log,那么它将非常有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31228704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档