从Docker容器中将图像推送到Google Container Registry

我目前正在尝试推送一个Docker镜像到我的容器registry这是在文档中使用的唯一的命令:

gcloud docker -- push gcr.io/my_project/foo:v1 

但是因为我在Docker容器中运行google-cloud-sdk ,所以我无法使用gcloud docker ...因为Docker正在主机上运行。

有没有办法将图像推送到容器registry,而无需在本地文件系统上安装google-cloud-sdk

我设法自己find答案,但供参考,我不会删除问题,而只是发布答案。

为了将Docker镜像直接从Docker客户端推送到Google Container Registry,您需要将docker login命令与Google云项目的身份validation令牌一起使用。

要获取Google Cloud项目的身份validation令牌,请使用:

 gcloud auth application-default print-access-token 

然后使用该令牌通过dockerloginGoogle Cloud:

 docker login -u oauth2accesstoken -p "token_goes_here" https://gcr.io 

如果login成功,您现在应该能够将图像直接推送到Google Container Registry:

 docker push gcr.io/my_project/foo:v1