我在让我的 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
也以管理员身份运行
我遇到了完全相同的问题--'
在 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 无法访问它的原因
确保 vmswitch 是外部的
https://docs.docker.com/machine/drivers/hyper-v/
我遇到了同样的问题,但通过从外部网络的下拉菜单中选择“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\网络连接
您也可以通过:网络和共享中心/更改适配器设置
详细解释见下图:
出色的贡献@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\网络连接
您也可以通过:网络和共享中心/更改适配器设置详细解释见下图:
这对我有用,谢谢
最有用的评论
我有同样的问题,发现我选择了错误的网卡创建虚拟交换机。 我正在使用 WLAN,将外部网络更改为无线网卡后一切正常。