无法创建Windows docker计算机? “ Hyper-V PowerShell模块不可用”

时间:2018-06-19 21:12:34

标签: windows docker docker-machine docker-for-windows

我刚刚安装了docker并尝试创建Windows(不是Linux)docker机器,但是失败了?

PS C:\> docker-machine.exe create --driver hyperv default
Creating CA: C:\Users\...\.docker\machine\certs\ca.pem
Creating client certificate: C:\Users\...\.docker\machine\certs\cert.pem
Running pre-create checks...
Error with pre-create check: "Hyper-V PowerShell Module is not available"

我下载了docker-machinehttps://github.com/docker/machine/releases/tag/v0.15.0)的较新版本,并且发生了新的错误。

PS C:\> .\bin\docker-machine-Windows-x86_64.exe create --driver hyperv default
Running pre-create checks...
Error with pre-create check: "no External vswitch found. A valid vswitch must be available for this command to run. Check https://docs.docker.com/machine/drivers/hyper-v/"

5 个答案:

答案 0 :(得分:7)

我相信您需要在Hyper-V Manager中创建网络交换机,并在创建计算机时指定它。

例如,如果您创建一个名为external-switch的外部交换机,则可以在创建计算机时指定它。

docker-machine create --driver hyperv --hyperv-virtual-switch external-switch [机器名称]

查看此链接:https://docs.docker.com/machine/drivers/hyper-v

答案 1 :(得分:3)

运行以下命令创建docker计算机时,

docker-machine create --driver hyperv hypervdockermachine

您可能会遇到以下错误。

Error with pre-create check: "no External vswitch found. A valid vswitch must be available for this command to run. Check https://docs.docker.com/machine/drivers/hyper-v/"

采取以下步骤在Windows 10上创建docker计算机。

在Windows搜索上键入hyper v并启动Hyper-V管理器

Hyper V Manager on Windows 10

然后单击“虚拟交换机管理器”。创建一个新的外部虚拟交换机

New Virtual Switch

创建一个新的虚拟交换机

enter details for the new virtual switch

现在运行以下命令。

docker-machine create --driver hyperv --hyperv-virtual-switch docker-machine-external-switch hypervdockermachine

请注意,docker-machine-external-switch是您刚刚创建的hyperv-virtual-switch,hypervdockermachine是将要使用上述命令创建的docker-machine的名称

答案 2 :(得分:1)

我对消息有同样的问题:

Error with pre-create check: "vswitch \"My Internal Switch\" not found"

我通过打开Hyper-V管理器并在GUI中创建虚拟交换机解决了该问题。

Hyper-V Virtual Switch

在命令行中运行我的相同命令,然后成功。

答案 3 :(得分:0)

我通过将虚拟交换机从internal network移到external network解决了我的错误。不知道为什么会在内部显示该错误

enter image description here

答案 4 :(得分:0)

a % m == a + m % m 正是您所需要的!

Default Switch