从Google Container Registry(不包括gcloud)中提取私人泊坞窗图片

我正在使用shippable将私人docker图像推送到Google Container Registry,然后我要从本地笔记本电脑或Google Compute Engine上的一个实例中提取图像。

我知道命令gcloud preview docker pull gcr.io/projectID/image-name作品,但我不能依靠gcloud被安装在每个人可能需要拉图像的机器上。

如果我在我的机器上运行docker-compose up -d然后我得到以下错误:

 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." 

有什么方法可以用某种forms的OAuth或密钥来validation或访问图像? 我想避免必须在每台需要拉取图像的机器上安装gcloud,并且图像必须保持私密。

我已经尝试过gcloud preview docker -a但这不是我正在寻找的解决scheme。

预先感谢您的任何帮助。

如果您希望使用vanilla docker在不使用Google Compute Engine(即本地)的计算机上使用Google Container Registry,则可以按照Google的说明进行操作 。

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

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

访问令牌

 $ docker login -e 1234@5678.com -u _token -p "$(gcloud auth print-access-token)" https://gcr.io 

JSON密钥文件

 $ docker login -e 1234@5678.com -u _json_key -p "$(cat keyfile.json)" https://gcr.io 

要创build密钥文件,您可以按照以下说明进行操作:

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

您可以在这里查看关于生成密钥文件的Google文档 。