我在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
试图解决方案
我没有按特定顺序尝试以下事项:
eval "$(docker-machine env default)"
docker-machine regenerate-certs default
劈
现在唯一对我有用的就是摧毁docker机器并重新创建它。这会破坏我的所有图像和容器,再次设置它会非常耗费时间。
docker-machine rm -y default && docker-machine create -d virtualbox default && eval $(docker-machine env)
有什么我可以尝试的吗?谢谢!
更新:5月9日(重现步骤)
我可以通过以下步骤可靠地重现此问题:
docker-compose up
构建一些容器。这通常是与启动和停止机器的方式有关的问题。
你可以用它来解决它
$ docker-machine stop默认
$ docker-machine启动默认值
$ docker-machine regenerate-certs默认值
不要使用“docker-machine restart default”,因为它不会刷新您的网络配置。
我有与Docker版本1.11.2相同的问题,构建b9f10c9
这对我有用 - 我的码头机器回到了运行状态
$ docker-machine restart
$ eval $(docker-machine env)
到目前为止,我有一个hacky解决方案 - 这修复了docker机器,但破坏了所有容器和图像。
脚本:rebuild-machine.sh
docker-machine rm -y default
docker-machine create -d virtualbox default
docker-machine stop default
VBoxManage modifyvm "default" --natpf1 "Forwarding App 1,tcp,127.0.0.1,3000,,3000"
VBoxManage modifyvm "default" --natpf1 "Forwarding App 2,tcp,127.0.0.1,3001,,3001"
VBoxManage modifyvm "default" --natpf1 "Forwarding App 3,tcp,127.0.0.1,3004,,3004"
VBoxManage modifyvm "default" --natpf1 "Forwarding App 4,tcp,127.0.0.1,3005,,3005"
VBoxManage modifyvm "default" --natpf1 "Forwarding App 5,tcp,127.0.0.1,3006,,3006"
VBoxManage modifyvm "default" --natpf1 "Forwarding App 6,tcp,127.0.0.1,8081,,8081"
docker-machine start default
eval $(docker-machine env)
说明
我的问题非常简单。我用我的ufw防火墙阻止了端口2376。 Docker-machine需要打开此端口才能连接到远程端口。
这对我有用,我的容器没有被破坏:
泊坞版:1.12.3
docker-machine版本:0.8.2,构建e18a919
我已打开virtualbox并关闭并手动启动所有vm。状态再次是running
我的问题非常简单 - 我在重新启动docker机器后立即执行了“docker machine ls”命令,所以它还没有运行,导致超时。