如何在安装Docker时在Windows Server 2016 TP4中正确创建虚拟交换机? (不是boot2docker)

时间:2016-01-20 22:27:19

标签: windows powershell docker

我在VMware上安装了 Windows Server 2016 Technical Preview 4 Warkstation。
它有2 GB RAM和60 GB磁盘空间。

我尝试根据official Microsoft instruction. Docker 安装 Windows Server Host Instruction in general in the picture

我不需要 Hyper-V容器技术,因此对于本指南,我不必使用标有星号的步骤'*'

因此,我们需要执行六个步骤来安装Windows Server Host和Docker:

  1. 安装容器功能
  2. 创建虚拟交换机
  3. 配置NAT
  4. 配置MAC地址欺骗
  5. 安装容器操作系统映像
  6. 安装Docker **
  7. 我在第二步遇到问题:在PowerShell中输入下一个cmdlet时创建虚拟交换机:

    PS C:\> New-VMSwitch -Name "Virtual Switch" -SwitchType NAT -NATSubnetAddress 172.16.0.0/12
    
    New-VMSwitch : Failed while adding virtual Ethernet switch connections.
    Internal miniport create failed, name = '8A407781-1BF5-4BB0-8538-35CFF056C598', friendly name = 'vEthernet (Virtual Switch)', MAC = 'DYNAMIC': One or more arguments are invalid
    (0x80070057).
    At line:1 char:1
    + New-VMSwitch -Name "Virtual Switch" -SwitchType NAT -NATSubnetAddress ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [New-VMSwitch], VirtualizationException
        + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.NewVMSwitch
    

    在这种情况下我该怎么做?

2 个答案:

答案 0 :(得分:1)

我可以使用Microsoft guide安装有关自动安装的docker,而不是使用manual guide

# Auto-install instruction.

PS C:\> powershell.exe
PS C:\> start-process powershell -Verb runas
PS C:\> wget -uri https://aka.ms/tp4/Install-ContainerHost -OutFile C:\Install-ContainerHost.ps1
PS C:\> C:\Install-ContainerHost.ps1 -HyperV

# Wrong!

但是键 -HyperV 的最后一行有错误。
我们需要加入它,所以最后一行看起来像:

PS C:\> powershell.exe
PS C:\> start-process powershell -Verb runas
PS C:\> wget -uri https://aka.ms/tp4/Install-ContainerHost -OutFile C:\Install-ContainerHost.ps1
PS C:\> C:\Install-ContainerHost.ps1

# Currect!

使用正确的指令我能够安装docker。

答案 1 :(得分:1)

第一次运行时,我在Nano Server上遇到了同样的错误:

PS C:\> New-VMSwitch -Name "Virtual Switch" -SwitchType NAT -NATSubnetAddress 172.16.0.0/12

SwitchType NAT肯定是正确的,因为该命令不接受除NAT开关类型之外的任何NATSubnetAddress参数。 再次运行它然后它在我的Nano服务器上工作。