【问题标题】:Pushing an image to Google Container Registry from inside a Docker container从 Docker 容器内将图像推送到 Google Container Registry
【发布时间】:2017-11-09 07:37:18
【问题描述】:
我目前正在尝试将 Docker 映像推送到我的 Container Registry,这是文档中使用的唯一命令:
gcloud docker -- push gcr.io/my_project/foo:v1
但由于我在 Docker 容器中运行 google-cloud-sdk,因此无法使用 gcloud docker ...,因为 Docker 正在主机上运行。
有没有什么方法可以将映像推送到容器注册表,而无需在本地文件系统上安装 google-cloud-sdk?
【问题讨论】:
标签:
docker
google-cloud-platform
gcloud
google-container-registry
【解决方案1】:
我自己设法找到了答案,但作为参考,我不会删除问题,而只是发布答案。
要将 Docker 映像直接从 docker 客户端推送到 Google Container Registry,您需要将 docker login 命令与您的 Google Cloud 项目的身份验证令牌一起使用。
要为您的 Google Cloud 项目获取身份验证令牌,请使用:
gcloud auth application-default print-access-token
然后使用该令牌通过docker 登录到 Google Cloud:
docker login -u oauth2accesstoken -p "token_goes_here" https://gcr.io
如果登录成功,您现在应该可以将图像直接推送到 Google Container Registry:
docker push gcr.io/my_project/foo:v1