gcloud docker推动可靠性

时间:2016-02-24 11:57:30

标签: docker gcloud docker-machine google-container-registry

在过去的几周内,我在使用gcloud docker push推送图片方面遇到了很多问题。我已经阅读了很多堆栈溢出讨论和github问题以及解决方法,但我还没有找到解决这个不一致的方法。

通常我会尝试推送一两个容器图像。第一次推送几乎总是会失败,并带有以下retry-until-timeout输出:

enter image description here

我只能用gcloud auth login绕过它。最多5分钟后,我将尝试推送第二张图片,并再次看到重试直到超时问题。我会在每次尝试时看到这一点,直到我再次gcloud auth login

在实际推送图像之前,我必须在验证后立即手动重试几次。

  1. 我实际上是否已退出(我仍然可以使用kubectlgcloud计算机访问pod和实例等?如果是这样,为什么注销不一致以及构建docker容器会做什么,这会使我的本地gcloud会话无效?
  2. 如果没有,为什么我可以gcloud docker push直到我再次进行身份验证?在那之后,为什么这仍然不一致(我怀疑它可能与真正的问题很少或没有任何关系)。
  3. 有没有办法在DockX机器和gcloud docker推送可靠的OSX上推送图像?是否有其他方法可以将图像传输到云存储库(最好是从命令行)?
  4. 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

3 个答案:

答案 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