我正在使用带有 Windows 和 Hyper-v 的 docker 来创建容器。我在我的 docker 配置中添加了一个 docker 机器 vmachine。第一次创建机器时,它获得一个 IP(虽然我无法管理 nginx 来访问它 - ERR_CONNECTION_REFUSED)并完成启动。
当我关闭机器然后尝试启动它时,我卡在这条消息中
等待 SSH 可用...
而且它不是从那里进化而来的。机器已启动,但是,当我输入命令
docker-machine ip vmachine
时,我得到了一个IPv6 - fe80::215:5dff:fe21:10b
insted of a IPv4
我做错了什么?
我遇到了类似的问题,但没有一个解决方案有效。事实证明,根据this answer,docker 启动了带有 Unix 特定元素的 SSH。据说这在随后的版本中已得到修复,但我仍然遇到“等待 SSH”问题。我通过简单地使用 GIT bash 运行所有与 docker 相关的 SSH 命令来解决这个问题。
docker-machine.exe -debug create --driver hyperv --hyperv-virtual-switch "外部虚拟交换机" --hyperv-cpu-count "1" --hyperv-memory "1024" --hyperv-disk-size “20000”mydockervm
确保配置额外的 VirtualSwitch,选择外部网络驱动程序,卸载 virtualbox
使用调试开关查看确切的错误,对我来说它无法分配内存。
这就是为我解决的问题。
原来 Windows 10 起始版本 1709 在 C:\Windows\System32\OpenSSH 有一个内置的 SSH 客户端。 这里有一篇讨论它的文章。
看起来 docker 正在使用该 SSH 实现并且它不兼容。我没有寻找合适的方法来删除 Windows 10 中内置的 SSH 工具,只是简单地重命名了该文件夹。这足以为我修复它。