过去几周,我在使用 gcloud docker Push
推送图像时遇到了很多问题。我已经阅读了许多堆栈溢出讨论以及 github 问题和解决方法,但我还没有找到解决不一致问题的方法。
通常我会尝试推送一两个容器镜像。第一次推送几乎总是会失败,并显示以下重试直到超时输出:
我只能通过gcloud auth login
来解决这个问题。最多 5 分钟后,我将尝试推送第二个图像,并会再次看到重试直到超时问题。我每次尝试都会看到此信息,直到再次 gcloud auth 登录
。
通常,在实际推送图像之前,我必须在身份验证后立即手动重试几次。
- 我是否真的被注销了(我仍然可以使用
kubectl
和gcloud
机器访问 Pod 和实例等)?如果是这样,为什么注销不一致?构建 docker 容器会做什么,导致我的本地 gcloud session 失效? - 如果不是,为什么在再次进行身份验证之前我无法
gcloud docker Push
?之后,为什么这仍然不一致(我怀疑它可能与真正的问题几乎没有关系或根本没有关系)。 - 有没有办法让 OSX 上使用 docker-machine 和 gcloud docker Push 可靠地推送镜像?是否有其他方法将图像获取到云存储库(最好从命令行)?
gcloud --版本
阿尔法 2016.01.12
测试版 2016.01.12
bq 2.0.18
bq-nix 2.0.18
核心 2016.02.11
core-nix 2016.02.05
云云
gsutil 4.16
gsutil-nix 4.15
库贝克特尔
kubectl-darwin-x86_64 1.1.7
docker --版本
Docker 版本 1.10.1,内部版本 9e83765
docker-machine --version
docker-machine版本0.6.0,构建e27fb87
virtualbox 版本 5.0.14 r105127
最佳答案
我遇到了相同或类似的问题。经过上面屏幕截图所示的几分钟重试循环后,该命令将失败并出现 net/http: TLS 握手超时
。
为我解决这个问题的解决方案是编辑 docker 守护进程配置
DOCKER_OPTS="--max-concurrent-uploads=1"
我感觉这个问题与 docker 堵塞网络有关,因为我注意到即使浏览 Gmail 也会超时(!)
关于docker - gcloud docker 推送可靠性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35601542/