Docker 机器超时 - 如何在不破坏机器的情况下修复?

2024-01-06

我的 Docker Machine 经常出现问题 - 每隔几天它就会超时,一旦发生这种情况我就无法恢复它。

Example

docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER   ERRORS
default            virtualbox   Timeout

环境信息

uname -a                 Darwin ColeyMBPR 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64
docker version           1.11.0
docker-machine version   0.7.0
vboxmanage --version     5.0.20r106931

尝试的解决方案

我尝试了以下操作(无特定顺序):

  • 重新启动 docker 机器。
  • Running eval "$(docker-machine env default)"
  • 重新生成证书docker-machine regenerate-certs default
  • 重新启动我的主机盒。
  • 升级 Docker。
  • 重新安装 Docker。
  • 升级 VirtualBox。
  • 删除所有 VirtualBox 仅主机网络设备。

Hack

现在唯一对我有用的就是销毁 docker 机器并重新创建它。这会破坏我所有的图像和容器,并且重新设置它非常耗时。

docker-machine rm -y default && docker-machine create -d virtualbox default && eval $(docker-machine env)

有什么我可以尝试的吗? Thanks!


更新:5 月 9 日(重现步骤)

我可以通过以下步骤可靠地重现此问题:

  1. 从新创建的 Docker 机器开始。
  2. Use docker-compose up构建一些容器。
  3. 关闭容器运行时的计算机。
  4. 重新启动后,由于 Docker 机器超时,Docker CLI 无法工作。

这个命令对我来说适用于 digitalocean 驱动程序:

docker-machine ls -t 20

似乎默认超时 10 秒 https://docs.docker.com/machine/reference/ls/太短了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 机器超时 - 如何在不破坏机器的情况下修复? 的相关文章

随机推荐