在Windows服务器上安装Docker Engine-Enterprise

预计阅读时间: 8分钟

Docker Engine-Enterprise在Windows Server上启用本机Docker容器。支持Windows Server 2016和更高版本。Docker Engine-Enterprise安装软件包包括在Windows Server上运行Docker所需的一切。本主题描述了安装前注意事项,以及如何下载和安装Docker Engine-Enterprise。

发行说明

所有版本的发行说明

系统要求

还需要按照Windows Server要求中指定的要求,满足有关特定CPU和RAM要求的Windows OS 要求 。这提供了有关特定CPU和内存规格和功能(指令集,如CMPXCHG16b,LAHF / SAHF和PrefetchW,安全性:DEP / NX等)的信息。

  • 操作系统版本:
    • 长期服务渠道(LTSC)-2016年和2019年(核心和GUI)
    • 半年频道(SAC)-1709、1803和1809
  • 内存:4GB
  • 磁盘空间: Windows最低建议为32 GB 。Docker建议为ServerCore和NanoServer的基础映像增加32 GB的空间,并为运行IIS,SQL Server和.Net应用程序的工作负载容器提供缓冲区空间。

安装Docker Engine-Enterprise

要在主机上安装Docker Engine-Enterprise,Docker提供了一个OneGet PowerShell模块。

  1. 打开提升的PowerShell命令提示符,然后键入以下命令。

    Install-Module DockerMsftProvider -Force
    Install-Package Docker -ProviderName DockerMsftProvider -Force
    
  2. 检查是否需要重新启动,如果是,请重新启动实例。

    (Install-WindowsFeature Containers).RestartNeeded
    

    如果此命令的输出为Yes ,则使用以下命令重新启动服务器:

    Restart-Computer
    
  3. 通过运行hello-world容器来测试Docker Engine-Enterprise安装。

    Windows Server 2019

    docker run hello-world:nanoserver
    

    Windows Server 2016

    docker run hello-world:nanoserver-sac2016
    

    容器启动,打印问候消息,然后退出。

    Unable to find image 'hello-world:nanoserver' locally
    nanoserver: Pulling from library/hello-world
    bce2fbc256ea: Pull complete
    3ac17e2e6106: Pull complete
    8cac44e17f16: Pull complete
    5e160e4d8db3: Pull complete
    Digest: sha256:25eac12ba40f7591969085ab3fb9772e8a4307553c14ea72d0e6f98b2c8ced9d
    Status: Downloaded newer image for hello-world:nanoserver
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    

(可选)确保您具有所有必需的更新

一些高级Docker功能(例如群模式)需要KB4015217中包含的修复程序(或更高版本的累积修补程序)。

sconfig

选择选项6) Download and Install Updates

FIPS 140-2加密模块支持

联邦信息处理标准(FIPS)出版物140-2是美国联邦对加密模块的安全要求。

有了Docker Engine-Enterprise Basic许可证(版本18.09及更高版本),Docker在Windows Server中提供了FIPS 140-2支持。这包括FIPS支持的加密模块。如果Windows实现已启用FIPS支持,则在Docker引擎中自动启用FIPS。

注意: FIPS 140-2仅在Docker Engine-Enterprise引擎中受支持。UCP和DTR当前不支持FIPS 140-2。

要在非FIPS 140-2模式下的系统上启用FIPS 140-2合规性,请在PowerShell中执行以下命令:

[System.Environment]::SetEnvironmentVariable("DOCKER_FIPS", "1", "Machine")

也可以通过Windows注册表启用FIPS 140-2模式。要更新相关的注册表项,请以管理员身份执行以下PowerShell命令:

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy\" -Name "Enabled" -Value "1"

通过运行以下命令重新启动Docker服务。

net stop docker
net start docker

要确认Docker在启用FIPS-140-2的情况下运行,请运行docker info命令:

Labels:
 com.docker.security.fips=enabled

注意:如果系统在操作系统上安装了FIPS-140-2加密模块,则可以禁用FIPS-140-2遵从性。要在Docker中禁用FIPS-140-2,但在操作系统中禁用,请在[System. ,将值设置为"DOCKER_FIPS","0" [System.Environment] 。`

使用脚本安装Docker Engine-Enterprise

如果您想通过脚本手动或在空白系统上手动安装Docker Engine-Enterprise,请使用以下指南。

  1. 在PowerShell命令提示符下,将安装程序存档下载到具有连接的计算机上。

    # On an online machine, download the zip file.
    Invoke-WebRequest -UseBasicParsing -OutFile docker-19.03.5.zip https://download.docker.com/components/engine/windows-server/19.03/docker-19.03.5.zip
    

    如果您需要下载特定的Docker Engine-Enterprise Engine版本,则可以在此JSON索引中找到所有URL。

  2. 将zip文件复制到要安装Docker的机器上。在PowerShell命令提示符中,使用以下命令提取存档,注册并启动Docker服务。

    # Stop Docker service
    Stop-Service docker
    
    # Extract the archive.
    Expand-Archive docker-19.03.5.zip -DestinationPath $Env:ProgramFiles -Force
    
    # Clean up the zip file.
    Remove-Item -Force docker-19.03.5.zip
    
    # Install Docker. This requires rebooting.
    $null = Install-WindowsFeature containers
    
    # Add Docker to the path for the current session.
    $env:path += ";$env:ProgramFiles\docker"
    
    # Optionally, modify PATH to persist across sessions.
    $newPath = "$env:ProgramFiles\docker;" +
    [Environment]::GetEnvironmentVariable("PATH",
    [EnvironmentVariableTarget]::Machine)
    
    [Environment]::SetEnvironmentVariable("PATH", $newPath,
    [EnvironmentVariableTarget]::Machine)
    
    # Register the Docker daemon as a service.
    dockerd --register-service
    
    # Start the Docker service.
    Start-Service docker
    
  3. 通过运行hello-world容器来测试Docker Engine-Enterprise安装。

    Windows Server 2019

    docker container run hello-world:nanoserver
    

    Windows Server 2016

    docker container run hello-world:nanoserver-sac2016
    

安装特定版本

要安装特定版本,请使用RequiredVersion标志:

Install-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 19.03
...
Name                      Version               Source           Summary
----                      -------               ------           -------
Docker                    19.03                 Docker           Contains Docker Engine - Enterprise for use with Windows Server...

更新DockerMsftProvider

安装特定的Docker Engine-企业版可能需要更新以前安装的DockerMsftProvider模块。更新:

Update-Module DockerMsftProvider

然后打开一个新的PowerShell会话,以使更新生效。

更新Docker引擎-企业

要将Docker Engine-Enterprise更新到最新版本,请指定-RequiredVersion-Update标志:

Install-Package -Name docker -ProviderName DockerMsftProvider -RequiredVersion 19.03 -Update -Force

所需的版本号必须与JSON索引上可用的版本匹配

卸载Docker Engine-Enterprise

使用以下命令从Windows Server完全删除Docker Engine-Enterprise:

  1. 保留所有活动的Docker Swarm。

     docker swarm leave --force
    
  2. 删除所有正在运行和已停止的容器。

     docker rm -f $(docker ps --all --quiet)
    
  3. 修剪容器数据。

     docker system prune --all --volumes
    
  4. 卸载Docker PowerShell软件包和模块。

     Uninstall-Package -Name docker -ProviderName DockerMsftProvider
     Uninstall-Module -Name DockerMsftProvider
    
  5. 清理Windows网络和文件系统。

     Get-HNSNetwork | Remove-HNSNetwork
     Remove-Item -Path "C:\ProgramData\Docker" -Recurse -Force
    

准备Windows主机以与UCP一起使用

要将Windows Server主机添加到现有的Universal Control Plane群集,请遵循先决条件和加入说明列表。

关于Docker Engine-企业容器和Windows Server

寻找有关使用Docker Engine-Enterprise容器的信息吗?

  • Windows容器入门(实验室)提供了有关如何在Windows 10或Windows Server 2016上设置和运行Windows容器的教程。它显示了如何在Windows容器中使用MusicStore应用程序。

  • 适用于Windows Server的Docker容器平台文章和 Docker网站上的博客文章

接下来去哪里

WindowsWindows Server安装下载ucpDocker Engine-Enterprise