【发布时间】:2015-12-09 10:18:06
【问题描述】:
我刚刚在 Windows 10 上使用 docker-toolbox 1.8.2 安装了 docker。
由于this issue,我不得不使用这些命令重新创建 docker 映像
docker-machine rm default
docker-machine --native-ssh create -d virtualbox default
之后它一直工作正常,除了一个问题:
当 PC 进入睡眠状态然后再次唤醒时,docker 命令无法再连接。示例:
> docker images
An error occurred trying to connect: Get https://192.168.99.100:2376/v1.20/images/json:
dial tcp 192.168.99.100:2376: ConnectEx tcp: A connection attempt failed because the
connected party did not properly respond after a period of time, or established connection
failed because connected host has failed to respond.
但是docker-machine 将机器列为正在运行:
> docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
default * virtualbox Running tcp://192.168.99.100:2376
我还可以在 VirtualBox 中确认 VM 屏幕似乎处于活动状态。
我试过启动和停止机器,但没有帮助
C:\x> docker-machine stop default
C:\x> docker-machine start default
Starting VM...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
C:\x> docker-machine env default --shell=powershell
具有讽刺意味的是,最后一个命令挂起,所以我从来没有得到任何环境设置。
唯一有用的是重新启动整个 PC。但这应该是不必要的吧?
我也将其发布为an issue on the docker github repository,但已关闭。 A related issue seems to be this one,但没有针对 Windows 发布解决方法或解决方案。
【问题讨论】:
-
容器是否连接到与操作系统使用的网络接口不同的网络接口?我在运行 Hyper-V 虚拟机时注意到,在主机从睡眠状态恢复后,它只会唤醒主网络接口,而不是我为虚拟机保留的网络接口。诀窍是禁用然后启用该网络接口。
-
@Petrik 容器列出了三个网络接口:
docker0、eth1和lo。我没有运行 Hyper-V。我测试了在主机 PC 上禁用/启用 Internet 网络接口,但这没有帮助。 Docker 在主机 PC 上创建了 4 个(四个!)网络接口。 -
我唯一能想到的就是禁用/启用主机 PC 上的 docker 接口。不知道还有什么可能。
标签: windows docker windows-10 docker-toolbox