从 Docker 容器内部将镜像推送到 Google Container Registry

问题描述 投票:0回答:2

我目前正在尝试将 Docker 映像推送到我的容器注册表,这是文档中使用的唯一命令:

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
2个回答
3
投票

我自己设法找到了答案,但作为参考,我不会删除问题,而只是发布答案。

为了将 Docker 映像直接从

docker
客户端推送到 Google 容器注册表,您需要使用
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 容器注册表:

docker push gcr.io/my_project/foo:v1

0
投票

值得一提的是,Google ContainerRegistry 即将被弃用,并被 Google ArtifactRegistry 取代。

使用新方法,上述答案将不再有效。如果您正在寻求指导,请参阅以下文档:

https://cloud.google.com/artifact-registry/docs/docker/store-docker-container-images#push

© www.soinside.com 2019 - 2024. All rights reserved.