【问题标题】:Docker-Machine commands timeout TLS handshake but Dock Swarmer working okDocker-Machine 命令超时 TLS 握手,但 Dock Swarmer 工作正常
【发布时间】:2017-05-04 02:28:35
【问题描述】:

我现在在使用 docker-machine 时遇到了问题,之前它工作正常,因为它在 Digital Ocean 中运行 docker 的机器上的命令超时。

我可以通过 SSH 连接到机器并且 Docker Swarm 和我们的系统似乎在机器上运行正常(docker node 命令似乎工作正常,例如 docker node ls)。

问题似乎出在 docker 机器上。我过去有类似的事情,可以通过增加超时时间来解决,但现在没有帮助。

错误似乎是由 net/http HTLS 握手超时引起的,输出来自:

docker-machine ls --timeout 30

显示:

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Stopped Unknown 
dev-m0 - digitalocean Error Unknown Get https://api.digitalocean.com/v2/droplets/42100174: net/http: TLS handshake timeout
dev-w1 - digitalocean Error Unknown Get https://api.digitalocean.com/v2/droplets/42115817: net/http: TLS handshake timeout
... repeated for all managers and workers.

我在我的 Mac 上运行 Docker CE 版本 17.05.0-ce-rc1-mac8 Edge,在 Digital Ocean 上的 Linux 机器上运行 17.03.0-ce(它似乎是最新可用的)。我已经在 Mac 上的 Edge 和 Stable 之间进行了切换,以查看是否是导致问题的原因,但没有帮助。

我已重新启动机器(停止和启动)。我没有重新生成证书,因为我可以毫无问题地使用 docker-machine ssh dev-m1 SSH 进入机器,所以证书对我来说似乎不是问题。我不想在本地运行任何容器。

过去一切正常,但最近停止了。

非常感谢任何帮助或建议。

谢谢, 阿什利。

【问题讨论】:

  • 您是否也尝试过重新启动本地 Docker for Mac?它有时会失去与正确时间的同步,这可能是 TLS 不再工作的原因。
  • 是的,谢谢,我已经多次重启Docker for Mac了。我什至重新启动了所有 docker 机器(即那些被控制的机器)。这可能与本地 Docker for Mac 相关,因为它影响了所有 docker 机器。我什至重新安装了 Docker for Mac,从 stable 移动到 edge,然后又回来了。
  • 我认为这是一个 docker 问题。更新到更高版本后,问题就消失了。

标签: linux docker digital-ocean docker-machine docker-swarm


【解决方案1】:

假设

我的猜测是您的 docker 客户端 VM 内的时间与数字海洋服务器不同步,这导致 TLS 握手失败。尝试通过在您的 Mac 上运行此命令来同步时钟:

$ docker run --rm --privileged alpine hwclock -s

该命令将使用hwclock 命令将VM 内的时钟设置为Mac 上的时钟。它需要特权访问,因为容器需要从主机硬件读取时间。

说明

您 Mac 上的 docker 客户端在瘦虚拟机中运行。 VM 中的时钟时间可能与您的 Mac 上的时间和外部世界的时间不同步,特别是如果您在允许睡眠的笔记本电脑上使用 docker 时。时间不同步可能会导致任何操作出现问题,这些操作需要知道事件在 docker 服务器(VM 内部)上发生的时间,并将其与 docker 服务器外部发生的事件进行比较。我怀疑与数字海洋的 TLS 握手就是这样一种操作。

我遇到了 docker 事件未按预期运行的问题。在 docker 存储库的问题部分 (moby/moby#25579) 进行了长时间讨论后,我们发现时钟不同步是原因。

【讨论】:

  • 感谢 Flavin 的建议。不幸的是,它似乎没有帮助。我尝试了很多次和一些替代方案。会继续努力,如果我能让它发挥作用,奖励赏金。
猜你喜欢
  • 2020-08-20
  • 2018-06-27
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
  • 2016-02-08
  • 2021-03-15
相关资源
最近更新 更多