Mav*_*ick 11 google-compute-engine docker docker-registry google-container-registry docker-compose
我正在使用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."
Run Code Online (Sandbox Code Playgroud)
有没有办法用某种形式的OAuth或密钥验证或访问图像?我想避免在每台需要拉动图像的机器上安装gcloud,并且图像必须保持私密.
我尝试过,gcloud preview docker -a但这不是我正在寻找的解决方案.
预先感谢您的任何帮助.
ant*_*tor 11
如果您想使用vanilla docker在不在Google Compute Engine(即本地)的计算机上使用Google容器注册表,您可以按照Google的说明操作.
两种主要方法是使用访问令牌或JSON密钥文件.
需要注意的是_token和_json_key你提供的用户名的实际值(-u)
访问令牌
$ docker login -e 1234@5678.com -u _token -p "$(gcloud auth print-access-token)" https://gcr.io
Run Code Online (Sandbox Code Playgroud)
JSON密钥文件
$ docker login -e 1234@5678.com -u _json_key -p "$(cat keyfile.json)" https://gcr.io
Run Code Online (Sandbox Code Playgroud)
要创建密钥文件,您可以按照以下说明操作:
| 归档时间: |
|
| 查看次数: |
4797 次 |
| 最近记录: |