首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从/O gcloud中提取专用码头图像

从/O gcloud中提取专用码头图像
EN

Stack Overflow用户
提问于 2015-06-18 22:21:43
回答 2查看 6.1K关注 0票数 12

我正在使用shippable将私人对接图像推送到,然后我想从本地的笔记本电脑或Google引擎的实例中提取这些图像。

我知道命令gcloud preview docker pull gcr.io/projectID/image-name可以工作,但我不能依赖于在可能需要从每台机器上提取映像的机器上安装gcloud。

如果我在我的机器上运行docker-compose up -d,那么我会得到以下错误:

代码语言:javascript
复制
Pulling image gcr.io/projectID/image-name...
Pulling repository gcr.io/projectID/image-name
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 31, in main
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 21, in sys_dispatch
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 27, in dispatch
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 24, in dispatch
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 59, in perform_command
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 464, in up
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.project", line 208, in up
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.service", line 214, in recreate_containers
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.service", line 199, in create_container
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.progress_stream", line 37, in stream_output
  File "/compose/build/docker-compose/out00-PYZ.pyz/compose.progress_stream", line 50, in print_output_event
compose.progress_stream.StreamOutputError: Error: Status 403 trying to pull repository projectID/image-name: "Access denied."

有任何方法可以使用某种形式的OAuth或密钥来验证或访问映像吗?我希望避免在每台需要拉映像的机器上安装gcloud,并且映像必须保持私有。

我尝试过gcloud preview docker -a,但这不是我想要的解决方案。

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-18 04:22:51

如果您想在Google (即本地的)计算机引擎以外的机器上使用普通的按照谷歌的指示,那么您可以在上工作。

两个主要方法是使用访问令牌或JSON密钥文件。

请注意,用户名(-u)的实际值是_token_json_key

接入令牌

代码语言:javascript
复制
$ docker login -e 1234@5678.com -u _token -p "$(gcloud auth print-access-token)" https://gcr.io

JSON密钥文件

代码语言:javascript
复制
$ docker login -e 1234@5678.com -u _json_key -p "$(cat keyfile.json)" https://gcr.io

要创建密钥文件,可以按照以下说明操作:

  1. 打开凭据页。
  2. 若要设置新的服务帐户,请执行以下操作:
    • 单击添加凭据>服务帐户。
    • 选择是将服务帐户的公钥/私钥作为标准P12文件下载,还是作为可以由Google客户端库加载的JSON文件下载。
    • 您的新公钥/私钥对将生成并下载到您的计算机上;它是此密钥的唯一副本。你有责任安全地储存它。

你可以在这里查看Google生成密钥文件的文档

票数 13
EN

Stack Overflow用户

发布于 2021-12-09 08:33:13

您也可以这样做,然后它也会工作。

代码语言:javascript
复制
cat service-account.json | docker login -u _json_key --password-stdin https://gcr.io
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30926813

复制
相关文章

相似问题

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