我在Docker Machine上经常遇到问题-每隔几天它就会决定超时,一旦发生这种情况我将无法恢复。

示例

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计算机。
  • 运行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)
    

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

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

    我可以通过以下步骤可靠地重现此问题:
  • 从新创建的Docker计算机开始。
  • 使用docker-compose up构建一些容器。
  • 在运行容器的情况下关闭计算机。
  • 重启后,由于Docker计算机超时,Docker CLI无法正常工作。
  • 最佳答案

    此命令对digitalocean驱动程序有效:
    docker-machine ls -t 20
    好像default timeout of 10 seconds太短了。

    关于macos - Docker机器超时-如何在不破坏机器的情况下进行修复?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37069718/

    10-12 22:01
    查看更多