执行 'docker push' 时 gcloud ping 尝试失败

gcloud ping attempt failure with performing a 'docker push'

我运行以下命令

gcloud preview docker push gcr.io/project-name/an-image

我收到以下错误。有谁知道我如何解决这个问题或它意味着什么?我所做的只是按照标准示例来学习它是如何工作的...谢谢 :)

FATA[0010] 错误:v1 ping 尝试失败,出现错误:获取 https://gcr.io/v1/_ping:拨号 tcp:i/o 超时。如果此私有注册表仅支持具有未知 CA 证书的 HTTP 或 HTTPS,请将 --insecure-registry gcr.io 添加到守护程序的参数中。在 HTTPS 的情况下,如果您可以访问注册表的 CA 证书,则不需要标志;只需将 CA 证书放在 /etc/docker/certs.d/gcr.io/ca.crt

错误:(gcloud.preview.docker) Docker 命令没有 运行 成功。 尝试 运行:'docker push gcr.io/project-name/an-image' 退出代码:1

该错误表示 docker 连接到 https://gcr.io/v1/_ping url 时出现问题,并且 tcp 连接超时。

最可能的原因是您的 ISP 与 Google 之间的连接出现故障。尝试 运行 "curl https://gcr.io/v1/_ping" 几次,看看它是否连接正确(它应该 return "true" 作为请求的主体)。如果没有,请尝试 ping gcr.io 以查看是否可以连接到服务器。

Docker <1.7 在解析 gcr.io、连接和执行 ping 时有 5 秒超时。

一旦它到达我们的前端,我们基本上就再也看不到这种跨越 ~100 毫秒的情况了,而且当我们设法捕获一致的故障时,它几乎普遍是由于名称解析缓慢造成的。

幸运的是,1.7 最终将这个时间提高到了 30 秒,这至少应该可以缓解这个问题。

我 运行 遇到了这个问题,对我来说,这不是 ISP 问题,curl https://us.gcr.io/v1/_ping 工作正常。然而,重新启动我的 docker 机器就成功了:

docker-machine stop
docker-machine start
@FOR /f "tokens=*" %i IN ('docker-machine env') DO @%i
gcloud docker push gcr.io/<project-name>/<an-image>