手把手教您在 Windows Server 2019 上使用 Docker

手把手教您在 Windows Server 2019 上使用 Docker_第1张图片

出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散!


说在前面


Windows Server 2019 是 Windows Server 下一款长期提供支持的产品,并且现在它已经可以供大家使用了!Windows Server 2019 为运行 Docker Windows 容器提供了一些非常有用的改进。现在,您可以直接用 Windows Server 来运行“纯”Docker 容器,其中所有的容器进程都可以直接在主机操作系统上运行。您可以在 Windows 10 上使用相同的 Docker 镜像、Dockerfiles 和 docker 命令。


注:在 Windows 10 上,Docker Desktop 是最简单的入门方式。

&


如果您想查看最新版本的 Windows Server 并运行 Docker 容器,那么您需要做以下工作。


获取 Windows Server 2019


您可以立即下载 ISO 来安装 Windows Server 2019,如果您有 Visual Studio 订阅,也可以安装Windows Server 2019,如果没有,则可以下载为期 180 天的评估版(点击文尾处“阅读原文”获取下载地址)。已经部署了 Windows Server 2019 的虚拟机将很快在 Azure 上提供。


2019 的安装过程与以前的 Windows Server 版本相同,从 ISO 启动 VM 并开始安装。我更喜欢没有 GUI 核心的安装方式:


手把手教您在 Windows Server 2019 上使用 Docker_第2张图片


我将 Server 2019 安装到运行在 Windows 10 计算机上的 Hyper-V VM 上,VM磁盘存储在外部 SSD 上。只需几分钟就可以完成设置,并且运行速度非常快(即使只分配了 4GB 的内存)。


注:您还可以使用 ISO 将以前的 Windows Server 版本升级到 2019。

640?wx_fmt=png


连接到服务器


当您用 RDP 进入到Windows Server Core机器时,您只看到一个命令提示符。 第一次连接时,您需要设置默认 Administrator account 的密码。 然后我喜欢将 PowerShell 设置为默认命令 shell,因此每当您使用 RDP 就会进入到 PowerShell 会话:

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -name Shell -Value 'PowerShell.exe -noExit' 


640?wx_fmt=png


配置 Windows 功能


要运行容器,您还需要启用容器功能,对于非生产 VM,我还禁用了 Windows Defender 功能来停止它消耗 CPU 周期。 您需要执行以下步骤后重新启动:

Install-WindowsFeature -Name Containers

Uninstall-WindowsFeature Windows-Defender

Restart-Computer -Force 

640?wx_fmt=png


配置 Windows 更新


首先需要确保版本是最新的,之后我会禁用自动更新功能,只有在我需要时才会进行的更新。Windows Server Core 中没有 GUI,因此请运行 sconfig 然后选择:


  • 选项5,将 Windows 更新设置为手动;

  • 选项7,启用对服务器的远程桌面访问;

  • 选项6,下载并安装所有更新;


然后就可以安装Docker了。

640?wx_fmt=png


在 Window Server 2019 上

安装 Docker


Windows Server 许可包含了 Docker Enterprise 的许可成本,因此您可以运行 Docker Enterprise 版本,并为 Microsoft 和 Docker 的容器提供生产支持。


最新的 Docker Enterprise 引擎版本为 18.03,您可以使用 PowerShel l 来进行安装:

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

Install-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 18.03


这会将 Docker 设置为一个 Windows 服务,您需要启动它:

Start-Service docker


640?wx_fmt=png


下载 Windows 基础镜像


您在 Windows Server 2019 上运行的任何 Docker 容器都将基于 Windows Server Core 或 Nano Server。 您将需要这两个镜像,并注意基本镜像现在托管在 Microsoft 的容器镜像仓库(MCR)上:

docker image pull mcr.microsoft.com/windows/servercore:1809

docker image pull mcr.microsoft.com/windows/nanoserver:1809 


注:与 Windows Server 2016 版本相比,这些镜像变得很小。 Windows Server Core 从 10GB 以上缩减到 1.5GB,Nano Server 从 1GB 缩小到 90MB!

640?wx_fmt=png


下载 .NET 核心镜像


Windows Server 2019 一经推出,.NET Core团队就发布了 SDK 和运行时镜像。您可以立即启用它们并在 2019 中开始运行 .NET Core 应用程序。

docker image pull microsoft/dotnet:2.1-sdk-nanoserver-1809 

docker image pull microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1809


上游 Docker 镜像仍在 Docker Hub 上,只有基础的 Windows 2019 镜像在 MCR 上

640?wx_fmt=png


试试看!


我推出了我的 .NET Core“whoami”镜像的更新版本,因此您也可以尝试在 Windows Server Core 2019 容器中运行 ASP.NET Core 2.1:

docker container run -d -p 8080:80 sixeyed/whoami-dotnet:nanoserver-1809 


Windows Server 2019 中 Docker 的一个增强功能是 loopback 地址现在可以使用了,因此您可以使用服务器上的 localhost 访问此容器,并使用外部计算机上相同的已发布端口:


手把手教您在 Windows Server 2019 上使用 Docker_第3张图片

640?wx_fmt=png


在 Swarm 模式中......


Windows Server 2019 现在支持 Docker swarm 模式的入口网络。 这意味着您可以在一台服务器上运行多个容器,所有容器都在同一端口上侦听,Docker 将在容器之间对传入请求进行负载均衡。


将服务器切换到单节点集群:

docker swarm init --advertise-addr 127.0.0.1 


现在将“whoami”应用程序部署为集群服务,具有多个副本和一个已发布的端口:

docker service create ` 

  --publish 8070:80 `

  --replicas 5 `

  sixeyed/whoami-dotnet:nanoserver-1809



现在,当您从外部浏览到 VM 时,Docker将在托管该服务的五个容器之间对请求进行负载均衡:


手把手教您在 Windows Server 2019 上使用 Docker_第4张图片

640?wx_fmt=png


不止于此


Windows Server 2016 仍然非常适合生产,但是 Windows Server 2019 使 Windows 容器更接近于 Linux 容器的特性,并且解决了 2016 中的一些棘手问题。

640?wx_fmt=png


点击下列标题,阅读更多干货


  • Docker 必备的 PowerShell 别名设置教程,轻松应对日常办公

  • Docker 联手合作伙伴 MuleSoft,助力旧版应用程序容器化改造

  • Docker Engine 18.09 版本上线,全新特性抢先体验!

  • Docker Windows Server 应用迁移计划上线,让您轻松处理旧版应用程序!


如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!

   手把手教您在 Windows Server 2019 上使用 Docker_第5张图片

你可能感兴趣的:(手把手教您在 Windows Server 2019 上使用 Docker)