Docker坚持“等待SSH可用......”

时间:2016-11-02 23:17:55

标签: windows docker hyper-v docker-machine

我正在使用带有Windows和Hyper-v的docker来创建容器。我在docker配置中添加了一个docker machine vmachine 。第一次创建机器时,它会获得一个IP(虽然我无法管理nginx来访问它 - ERR_CONNECTION_REFUSED)并完成启动。

当我关闭机器然后尝试启动它时,我会卡在这条消息中

等待SSH可用...

它并没有从那里发展。机器已启动,但是,当我输入命令docker-machine ip vmachine时,我得到了一个IPv6,例如 - fe80::215:5dff:fe21:10b insted一个IPv4

我做错了什么?

8 个答案:

答案 0 :(得分:7)

此处出现问题默认情况下,docker使用DockerNAT网络交换机。您应该创建一个新的外部网络交换机。此问题已涵盖herehere。您可以使用以下命令

创建外部网络交换机
docker-machine create -d hyperv --hyperv-virtual-switch external-switch tempbox1

或者您可以通过UI创建一个

external network switch

创建外部开关后,务必重新启动设备。

答案 1 :(得分:1)

我遇到了类似的问题,但没有解决方案。事实证明,根据this answer,docker使用Unix特定元素启动SSH。据说此问题已在随后的发行版中修复,但是我仍然遇到“等待SSH”的问题。我只需使用GIT bash运行所有与docker相关的SSH命令即可解决此问题。

答案 2 :(得分:0)

docker-machine.exe -debug create --driver hyperv --hyperv-virtual-switch“External Virtual Switch”--hyperv-cpu-count“1”--hyperv-memory“1024” - high -v-disk -size“20000”mydockervm

确保在选择了外部网络驱动程序的情况下进行其他VirtualSwitch配置,卸载virtualbox

使用调试开关查看确切的错误,对我来说,它无法分配内存。

答案 3 :(得分:0)

完成上述建议中所述的操作后,如果您在Windows计算机上运行docker,请尝试使用cli登录。这对我有用。

答案 4 :(得分:0)

如果您使用的是Command Promt,则Docker将停留在等待SSH可用的状态,...因此请更改为使用GIT BASH,如@Dave Howson所说的那样。

答案 5 :(得分:0)

这是为我解决的问题。

结果证明Windows 10起始版本1709在C:\ Windows \ System32 \ OpenSSH处具有内置的SSH客户端。 Here是一篇讨论它的文章。

看起来docker正在使用该SSH实现,并且不兼容。我没有找到在Windows 10中删除内置SSH实施工具的正确方法,而只是重命名了该文件夹。足以为我修复它。

答案 6 :(得分:0)

使用开关--native-ssh

例如docker-machine --native-ssh ....here获取更多详细信息

答案 7 :(得分:0)

如果您使用的是 oracle VM,则必须首先确保您的新云 vm 是 running

之前enter image description here

之后enter image description here