假设我有两个项目,如[GCR-project]和[read-project]。我想从[read-project]
中的VM中将[GCR-project]中存储在GCR中的图像拉出来我已经提到了this,但没有成功。我尝试了两种方法,
1。将服务帐户添加到IAM:
我将[read-project]的VM服务帐户邮件添加到[GCR-project],其角色设置为Storage>存储对象查看器。现在,尝试使用命令
在[read-project]的VM中拉出docker容器docker pull asia.gcr.io/<GCR-project-id>/<folder>/<container-name>
403 失败。我也试过这个命令:
gcloud docker pull asia.gcr.io/sharedproject-156002/em/textextractor:8-jre-p4
也因 403 而失败。我尝试将角色的编辑角色升级到IAM中的服务帐户。在此之后,docker pull命令失败, 403 。
2。将服务帐户添加到gsutil acl:
所有GCR存储库实际上都是云存储桶。因此,我尝试使用以下命令编辑bucket acl以允许[read-project]的VM服务帐户的读取权限:
gsutil acl ch -u <service-account-mailID>:R gs://artifacts.$PROJECT_ID.appspot.com
此尝试后,docker pull命令也因403而失败。
如何从不同项目的VM中提取docker镜像?我还想知道从GFS以外的VM访问GCR中的docker镜像,如AWS。