Machine: 使用 Hyper-v 在 Windows 上运行 Docker-Machine 等待主机启动....

创建于 2016-10-18  ·  24评论  ·  资料来源: docker/machine

我在让我的 docker-machine 创建和运行一个新盒子时遇到了麻烦。 我已按照安装 docker 的说明进行操作,并使用以下文档手动设置带有 hyperv 的交换机:
https://docs.docker.com/machine/drivers/hyper-v/

C:\WINDOWS\system32>docker-machine create -d hyperv --hyperv-virtual-switch "Virtual Switch Main" manager1
运行预创建检查...
正在创建机器...
(manager1) 将 C:\Users\Spartan.docker\machine\cache\boot2docker.iso 复制到 C:\Users\Spartan.docker\machine\machines\manager1\boot2docker.iso ...
(manager1) 正在创建 SSH 密钥...
(manager1) 正在创建虚拟机...
(manager1) 使用开关“Virtual Switch Main”
(manager1) 创建 VHD
(manager1) 正在启动虚拟机...
(manager1) 等待主机启动...

它永远挂在那里...... :(如果你们中的任何人有关于如何从这里开始工作的建议,那将是惊人的!

当我运行 docker-machine ls
C:\WINDOWS\system32>docker-machine ls
名称活动驱动程序状态 URL SWARM Docker 错误
manager1 * hyperv Running Unknown IP not found
张量 * hyperv 运行未知 IP 未找到

C:\WINDOWS\system32>docker --version
Docker 版本 1.12.1,构建 23cf638

C:\WINDOWS\system32>docker-machine --version
docker-machine 版本 0.8.1,构建 41b3b25
也以管理员身份运行

最有用的评论

我有同样的问题,发现我选择了错误的网卡创建虚拟交换机。 我正在使用 WLAN,将外部网络更改为无线网卡后一切正常。

所有24条评论

我遇到了完全相同的问题--'

在 hyper v 管理器中检查机器时,机器正在运行并且可以访问,但似乎 docker 脚本没有接收到

启用调试模式时,它似乎卡住了

(default2) DBG | [executing ==>] : C:\Windows\System32\WindowsPowerShell\v1.0\\powershell.exe -NoProfile -NonInteractive
 ( Get-VM default2 ).state

^^那个命令

更新到最新版本的 Docker Toolbox (Windows) 后,我遇到了同样的问题。

编辑:这可能与我目前使用的 WLAN 不同,以前使用的是以太网。 我明天检查。

EDIT2:是的。 与以太网连接(Hyper V 外部交换机)连接时工作正常。

我遇到了同样的问题 - 有没有人解决这个问题?

@vvucetic同上——使用以太网适配器而不是 WLAN 现在为我解决了这个问题。

更正:我在我的 WLAN 适配器上完成了所有工作——经过更多的研究,实际上需要做一些事情。 我必须首先禁用适配器上的 IPv6 支持(遗憾的是,虽然我目前没有使用它),并且还必须确保禁用 VirtualBox Bridged Networking 驱动程序。 然后一切正常,我的虚拟机被分配了一个 IPv4 地址。

我有同样的问题,发现我选择了错误的网卡创建虚拟交换机。 我正在使用 WLAN,将外部网络更改为无线网卡后一切正常。

在从https://docs.docker.com/get-started/part4/#create -a-cluster 的教程中学习 docker 时遇到了这个问题。
我必须修改“myswitch”设备以使用以太网适配器而不是 wifi 才能使其正常工作。

我有同样的问题。 VM 已创建、启动并运行,但 docker-machine 挂在Waiting for host to start... (在挂起 5 分钟后,在另一个 PowerShell 中创建了第二个 VM)。 我之前遵循了@embray给出的建议,dmesg ,发现它们找不到以太网设备。

事实证明,我在创建虚拟交换机(Supermicro 主板,带有多个 NIC)时选择了错误的以太网适配器。 更改后, docker-machine ls能够列出 VM,但抱怨 TLS 证书仅对 127.0.0.1 有效。 鉴于我对 Docker 的 noob 状态,我不确定证书存储在哪里,更不用说更改了。 相反,我采用了蛮力方法来移除和删除两个虚拟机。 重新创建后,一切都很顺利……到目前为止……进入教程的获取部分。

如果您安装了 Windows 版 Docker,这也会发生这种情况,它会在 Hyper-V(仅限内部)中创建 DockerNAT 虚拟交换机。 然后你可以使用 docker-machine 创建一个 VM,默认情况下它最终使用该虚拟交换机。 所以要修复,请确保您首先创建了一个新开关,然后在创建 docker 机器时使用该

docker-machine create -d hyperv --hyperv-virtual-switch "<NameOfVirtualSwitch>" <nameOfNode>

C:\Users\Admin.WSD027>docker-machine create --driver hyperv vm
运行预创建检查...
正在创建机器...
(vm) 将 C:\Users\Admin.WSD027.docker\machine\cache\boot2docker.iso 复制到 C:\Users\Admin.WSD027.docker\machine\machines\vm\boot2docker.iso...
(vm) 正在创建 SSH 密钥...
(vm) 正在创建虚拟机...
(vm) 使用开关“Layered_Ethernet”
(vm) 创建 VHD
(vm) 正在启动虚拟机...
(vm) 等待主机启动...
等待机器运行,这可能需要几分钟...
正在检测已创建实例的操作系统...
正在等待 SSH 可用...
它挂了,有人能帮我吗

@dhan2vijay你能看到在 Hyper-V 中启动的实例吗? 如果是这样,那么您可以使用 PuTTY 之类的客户端通过 SSH 连接到它吗?

这也发生在我身上。 它挂在“等待主机启动”上,是否有日志文件之类的?

@indranil-chakraborty 是的,我检查过,但我无法访问

@dhan2vijay ,您可以通过 Hyper-v 管理器访问它。
您也可以尝试创建一个新的虚拟交换机,并使用它代替默认的 DockerNAT。 它帮助了我

我确实为此创建了一个特殊的开关。 您通过 hyper-v 管理器使用了什么程序? 您的意思是从那里启动 VM 上的控制台吗?

是的,您可以在 hyper-v 管理器中连接到虚拟机,双击虚拟机列表中的虚拟机。 https://technet.microsoft.com/en-us/library/cc742407 (v=ws.11).aspx
就像连接到虚拟机的真实显示器
您可以检查创建的 VM 中的网络设置,检查 VM 中的 dmesg 和其他日志,并找出 ssh 无法访问它的原因

我遇到了同样的问题,但通过从外部网络的下拉菜单中选择“Intel(R) 以太网连接”解决了。 按照此处的说明操作
https://docs.docker.com/machine/drivers/hyper-v/#2 -set-up-a-new-external-network-switch-optional

但请确保从外部网络的下拉菜单中选择以太网连接选项

进入“网络和共享中心”->“更改适配器设置”,设置外网开关时选择Hyper-v创建的“网桥”适配器。 在“网桥”属性下设置“Internet 协议版本(TCP/IPv4)”。 我的是未设置。 就这样。

重新启动 docker 或创建新开关对我有用。

我也遇到过这个问题,解决了,我认为根本原因是:文档不清晰。
解决这个问题:
请确保您选择了正确的网络
列表中有多个网络,但可能只有一个已启用
您可以在以下位置检查状态:控制面板\网络和 Internet\网络连接
您也可以通过:网络和共享中心/更改适配器设置

详细解释见下图:
image

出色的贡献@timothy2005我一直在努力解决这个问题,图形确实为我指明了正确的方向。 我尝试了各种方法,但无法使用主以太网连接(红十字),但是一旦我的 Wifi 适配器正常工作(并在此过程中禁用了 VirtualBox 适配器),问题就解决了。

如果配置了 NAT,它可以与内部虚拟交换机一起使用,因为 NAT 通过 dhcp 为 boot2docker 提供 IP。
在 Windows 10 Fall Creaters 更新 1709 之后,有一个“默认开关”并且它配置了 NAT。 我使用它是因为我没有成功配置新的 NAT
PS 如果在您的系统上启用了 Windows 本机 openssh-client(对于 docker 来说是外部的),由于 TLS 错误,您应该在 docker-machine.exe 中使用--native-ssh参数。

确保在创建启用以太网的虚拟交换机时使用外部网络,否则它将保持在等待主机启动.....一旦成功,您需要打开防火墙以连接.....

我也遇到过这个问题,解决了,我认为根本原因是:文档不清晰。
解决这个问题:
请确保您选择了正确的网络
列表中有多个网络,但可能只有一个已启用
您可以在以下位置检查状态:控制面板\网络和 Internet\网络连接
您也可以通过:网络和共享中心/更改适配器设置

详细解释见下图:
image

这对我有用,谢谢

此页面是否有帮助?
0 / 5 - 0 等级