docker - gcloud docker push 挂起

标签 docker gcloud google-kubernetes-engine google-container-registry

当我尝试使用 gcloud docker push 将新的 docker 镜像推送到 gcr.io 时,它经常会在停止之前取得一些进展:

$ gcloud docker push gcr.io/foo-bar-1225/baz-quux:2016-03-23
The push refers to a repository [gcr.io/foo-bar-1225/baz-quux]
762ab2ceaa70: Pushing [>                                              ]   556 kB/154.4 MB
2220ee6c7534: Pushing [===>                                           ]  4.82 MB/66.11 MB
f99917176817: Layer already exists
8c1b4a49167b: Layer already exists
5f70bf18a086: Layer already exists
1967867932fe: Layer already exists
6b4fab929601: Layer already exists
550f16cd8ed1: Layer already exists
44267ec3aa94: Layer already exists
bd750002938c: Layer already exists
917c0fc99b35: Layer already exists

推送会无限期地保持在这个状态(我已经离开了一个小时,没有一个字节的进展)。如果我 Ctrl-C 终止此进程并重新运行它,它会到达完全相同的点并且再次没有任何进展。

我发现的唯一解决方法是重新启动计算机并重新运行“Docker 快速启动终端”。然后推送成功。

是否有不需要频繁重启计算机的停滞推送的解决方法? (我在 Mac OS X 上。)

最佳答案

这似乎是 Mac 上的 docker 用户之前遇到过的问题,可以在这个 docker 线程中看到,https://github.com/docker/docker/issues/5113

虽然没有明确的解决方法,但更好的解决方法是每次重新启动 docker 机器而不是您的计算机。

您可以运行 docker-machine restart default 将 docker 重置为工作状态。

希望对您有所帮助。

关于docker - gcloud docker push 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36186905/

相关文章:

google-app-engine - GCloud 部署到 App Engine 响应错误请求

kubernetes - pod 应用程序存储在 PV 持久存储上的文件在主机上不可见 [GKE]

bash - Docker exec 引用变量

docker - Docker复制具有旧修改时间的文件

docker - 如何上传Dockerfile到dockerhub?

kubernetes - 如何在 Kubernetes 的 Pod 内登录

google-kubernetes-engine - Google Cloud Container Engine 上的 HTTPS

docker - docker-compose:权限被拒绝错误:调出ASP.NET Core 2.2项目时遇到错误

node.js - App Engine 无法识别 JSON 文件

macos - 如何彻底删除gcloud?