上传docker镜像到谷歌云平台:https://grc.io/v2/: Service Unavailable

Posted

技术标签:

【中文标题】上传docker镜像到谷歌云平台:https://grc.io/v2/: Service Unavailable【英文标题】:upload docker image to google cloud platform: https://grc.io/v2/: Service Unavailable 【发布时间】:2020-11-25 22:48:08 【问题描述】:

我正在尝试将本地创建的 docker 映像(graalvm,Mac 上的 docker 桌面)上传到 gcp(具有真实项目 ID)。

我看到以下错误:

% docker push grc.io/<project>/facility
The push refers to repository [grc.io/<project>/facility]

Get https://grc.io/v2/: Service Unavailable

我设置了 gcloud 身份验证:

gcloud auth configure-docker

我的.docker/config.json 看起来像这样


  "experimental" : "disabled",
  "credHelpers" : 
    "gcr.io" : "gcloud",
    "us.gcr.io" : "gcloud",
    "eu.gcr.io" : "gcloud"
  ,
  "auths" : 

  ,
  "stackOrchestrator" : "swarm"

跑步

echo "https://gcr.io" | docker-credential-gcloud get

提供一个令牌。

有什么问题?

-- 更新--

当我运行这个(工作)

gcloud container images list --repository=gcr.io/<project-id> --log-http

它正在与https://gcr.io/v2/token?.. 交谈。上面的 docker-credential-gcloud 正在与 https://oauth2.googleapis.com/token 交谈。

【问题讨论】:

将 https 添加到您的推送命令中? 错误消息显示 https://.... 添加 https 会产生另一个错误 invalid reference format 【参考方案1】:

这是一个替代解决方案:

gcloud builds submit --tag gcr.io/<project-name>/<app-name>

【讨论】:

【参考方案2】:

看起来你有一个错字。应该是 gcr.io 而不是 grc.io

【讨论】:

oh my ;-) 使用gcr.io 运行推送现在确实抱怨项目已被删除(这是正确的)。但它不再抱怨服务不可用,所以我想这就是问题所在。很好的收获:-)【参考方案3】:

你应该替换 &lt;project&gt; in

docker push grc.io/<project>/facility

使用您的项目 ID。

如果您不确定如何获取项目 ID,您可以通过 cli 获取所有项目及其 ID 的列表。

gcloud projects list

【讨论】:

【参考方案4】:

在这方面花了更多时间后,我发现 gcp 有 container 注册表和 artifact 注册表(测试版)。

由于我没有让它与容器注册表一起运行,我创建了一个新的测试项目和一个 artifact 注册表。

除了注册地址外,设置相同。

本地运行后

gcloud auth application-default login
gcloud beta auth configure-docker us-east1-docker.pkg.dev

我的 ~/.docker/config.json 有以下 credHelper 条目

  "credHelpers": 
    "us-east1-docker.pkg.dev": "gcloud"
  ,

现在我可以标记和推送

docker tag a01478beacf9 us-east1-docker.pkg.dev/test-2/facility/name
docker push us-east1-docker.pkg.dev/test-2/facility/name

标签有 4 个部分:

HOST-NAME              /PROJECT-ID/REPOSITORY/IMAGE
us-east1-docker.pkg.dev/test-2    /facility  /name

它只是工作。 :)

【讨论】:

以上是关于上传docker镜像到谷歌云平台:https://grc.io/v2/: Service Unavailable的主要内容,如果未能解决你的问题,请参考以下文章

使用 SSIS 将本地文件上传到谷歌云存储桶

如何使用 docker-compose 将容器部署到谷歌云?

春季启动图像上传到谷歌云存储桶不起作用

使用 docker-compose 将 Docker 映像部署到谷歌云运行

我无法使用 python 脚本将文件上传到谷歌云?

将缓冲区上传到谷歌云存储