上传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】:
你应该替换 <project>
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的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 docker-compose 将容器部署到谷歌云?