【问题标题】:Cannot create Windows docker machine? "Hyper-V PowerShell Module is not available"无法创建 Windows docker 机器? “Hyper-V PowerShell 模块不可用”
【发布时间】:2018-11-28 22:12:29
【问题描述】:

我刚刚安装了 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-machine (https://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/"

【问题讨论】:

  • 你是怎么解决这个问题的?

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


【解决方案1】:

我对消息有同样的问题:

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

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

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

【讨论】:

    【解决方案2】:

    我相信你需要在Hyper-V Manager中创建一个网络交换机,并在创建机器时指定它。

    例如,如果您创建一个名为 external-switch 的外部开关,那么您可以在创建机器时像这样指定它。

    docker-machine create --driver hyperv --hyperv-virtual-switch external-switch [Machine Name]

    查看此链接了解更多信息:https://docs.docker.com/machine/drivers/hyper-v

    【讨论】:

    【解决方案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 管理器

    接下来单击虚拟交换机管理器。创建一个新的外部虚拟交换机

    创建一个新的虚拟交换机

    现在运行以下命令。

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        Default Switch 是你所需要的!

        docker-machine create --driver hyperv --hyperv-virtual-switch "Default Switch" node1

        【讨论】:

        • 什么是“默认开关”,它比其他现有答案更好吗?
        • ...事实上,我正是根据所问的问题来到这里的。而问题的关键在于如何创建虚拟机,而不是如何配置hyperv。起初我被引导到第一个答案,这就是为什么我浪费了很多时间,直到我尝试了一切......我得到了我需要的东西和问题所在,只需设置已经存在的网络...... .
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 2013-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多