我在使用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 主机网络设备。
技巧
目前唯一有效的方法是销毁 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无法工作。
docker-machine upgrade
,结果一切都消失了。 - EvgeniySharapov