我正在尝试将 Docker 映像推送到 Google 的容器注册表,但一直收到有关 Docker 登录失败的错误。我运行
gcloud docker -- push gcr.io/<my-project-id>/test-image
我回来了
ERROR: Docker CLI operation failed:
Error response from daemon: login attempt to
https://appengine.gcr.io/v2/ failed with status: 404 Not Found
ERROR: (gcloud.docker) Docker login failed.
其他不通过 docker 工作的 gcloud 操作。例如,我可以通过 创建一个集群gcloud container clusters create my-cluster
。
我今天确实玩了一下本地注册表,不确定这是否会破坏某些东西。
谢谢!
答案1
您只需在 Docker for Mac 的偏好设置中禁用在 macOS 钥匙串上存储 docker 凭据即可。
答案2
编辑:看来我的方法只有效暂时地。感谢@hamx0r 发布了如何应用长期修复的截图。
通过从文件中删除此条目,禁止在 mac os x 钥匙串上存储 docker 凭据~/.docker/config.json
。
"credsStore": "osxkeychain",
就我而言,我没有额外的配置(我没有登录),所以我只是清空了整个文件。
答案3
应该有一个更新可以Google Cloud SDK
v164.0.0
解决这个问题,很抱歉给您带来麻烦。
现在可能是宣传城里最新、最热门的身份验证方法的好时机:
docker-credential-gcr
编辑:v164.0.0
已发布:
重大变化
appengine.gcr.io
从进行身份验证的默认存储库列表中删除gcloud docker
。
答案4
我也遇到了同样的问题。我使用的是 Edge 频道的 Docker for Mac(请参阅区别https://docs.docker.com/docker-for-mac/install/)。切换到稳定版本后(请注意,您将丢失所有图像、容器、卷和配置),我可以再次将图像推送到 Google 容器注册表。