在过去的几周内,我在使用gcloud docker push
推送图片方面遇到了很多问题。我已经阅读了很多堆栈溢出讨论和github问题以及解决方法,但我还没有找到解决这个不一致的方法。
通常我会尝试推送一两个容器图像。第一次推送几乎总是会失败,并带有以下retry-until-timeout输出:
我只能用gcloud auth login
绕过它。最多5分钟后,我将尝试推送第二张图片,并再次看到重试直到超时问题。我会在每次尝试时看到这一点,直到我再次gcloud auth login
。
在实际推送图像之前,我必须在验证后立即手动重试几次。
kubectl
和gcloud
计算机访问pod和实例等?如果是这样,为什么注销不一致以及构建docker容器会做什么,这会使我的本地gcloud会话无效?gcloud docker push
直到我再次进行身份验证?在那之后,为什么这仍然不一致(我怀疑它可能与真正的问题很少或没有任何关系)。 gcloud --version
alpha 2016.01.12
beta 2016.01.12
bq 2.0.18
bq-nix 2.0.18
core 2016.02.11
core-nix 2016.02.05
gcloud
gsutil 4.16
gsutil-nix 4.15
kubectl
kubectl-darwin-x86_64 1.1.7
docker --version
Docker version 1.10.1, build 9e83765
docker-machine --version
docker-machine version 0.6.0, build e27fb87
virtualbox版本5.0.14 r105127
答案 0 :(得分:1)
切换到常规docker push
不会有助于超时。这似乎与您的ISP和上传资产有关。
我收到同样的错误。在将Docker构建过程移动到云(具有更大的管道)之后,gcloud docker构建并部署图像就好了。
答案 1 :(得分:1)
我有同样或类似的问题。使用上面的屏幕截图描述几分钟的重试循环后,该命令将失败并显示net/http: TLS handshake timeout
。
为我修复它的解决方案是使用
编辑docker守护程序配置 DOCKER_OPTS="--max-concurrent-uploads=1"
我有一种感觉这个问题与docker堵塞网络有关,因为我注意到即使浏览到gmail也可能会超时(!)
答案 2 :(得分:0)
我从来没有遇到过gcloud docker
提到的问题,但关于你的最后一点,
是否有其他方法可以将图像传输到云存储库(最好是从命令行)?
确实可以在没有通过gcloud的情况下推送到gcr.io repos,例如:
docker login -e dummy@example.com -p $(gcloud auth print-access-token) -u _token https://gcr.io
docker push [your-image]
对mattmoor的信用,原始回答的更多信息: Access google container registry without the gcloud client