⼿把⼿教您在WindowsServer2019上使⽤Docker
出品⼁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 订阅,也可以安装Windo
ws Server 2019,如果没有,则可以下载为期 180 天的评估版(点击⽂尾处“阅读原⽂”获取下载地址)。已经部署了 Windows Server 2019 的虚拟机将很快在 Azure 上提供。
2019 的安装过程与以前的 Windows Server 版本相同,从 ISO 启动 VM 并开始安装。我更喜欢没有 GUI 核⼼的安装⽅式:
我将 Server 2019 安装到运⾏在 Windows 10 计算机上的 Hyper-V VM 上,VM磁盘存储在外部 SSD
上。只需⼏分钟就可以完成设置,并且运⾏速度⾮常快(即使只分配了 4GB 的内存)。
注:您还可以使⽤ ISO 将以前的 Windows Server 版本升级到 2019。
连接到服务器
当您⽤ RDP 进⼊到Windows Server Core机器时,您只看到⼀个命令提⽰符。 第⼀次连接时,您需要设置默认 Administrator account 的密码。 然后我喜欢将 PowerShell 设置为默认命令 shell,因此每当您使⽤ RDP 就会进⼊到 PowerShell 会话:
Set-ItemPro perty -Path 'HK LM:\SO FTWARE\Micro so ft\Windo ws NT\CurrentVersio n\Winlo go n' -name Shell -Value ' -no Exit'
配置 Windows 功能
要运⾏容器,您还需要启⽤容器功能,对于⾮⽣产 VM,我还禁⽤了 Windows Defender 功能来停⽌它消耗 CPU 周期。 您需要执⾏以下步骤后重新启动:
Install-Windo wsFeature -Name Co ntainers
Uninstall-Windo wsFeature Windo ws-Defender
Restart-Co mputer -Fo rce
配置 Windows 更新
⾸先需要确保版本是最新的,之后我会禁⽤⾃动更新功能,只有在我需要时才会进⾏的更新。Windows Server Core 中没有 GUI,因此请运⾏ sconfig 然后选择:
选项5,将 Windows 更新设置为⼿动;
选项7,启⽤对服务器的远程桌⾯访问;
选项6,下载并安装所有更新;
然后就可以安装Docker了。
在 Window Server 2019 上
安装 Docker
Windows Server 许可包含了 Docker Enterprise 的许可成本,因此您可以运⾏ Docker Enterprise 版本,并为 Microsoft 和Docker 的容器提供⽣产⽀持。
最新的 Docker Enterprise 引擎版本为 18.03,您可以使⽤ PowerShel l 来进⾏安装:
Install-Mo dule -Name Do ckerMsftPro v ider -Repo sito ry PSGallery -Fo rce
Install-Package -Name do cker -Pro v iderName Do ckerMsftPro v ider -Fo rce -RequiredVersio n 18.03
这会将 Docker 设置为⼀个 Windows 服务,您需要启动它:
Start-Serv ice do cker
下载 Windows 基础镜像
您在 Windows Server 2019 上运⾏的任何 Docker 容器都将基于 Windows Server Core 或 Nano Server。 您将需要这两个镜像,并注意基本镜像现在托管在 Microsoft 的容器镜像仓库(MCR)上:
do cker image pull mcr.micro m/windo ws/serv erco re:1809
do cker image pull mcr.micro m/windo ws/nano serv er:1809
注:与 Windows Server 2016 版本相⽐,这些镜像变得很⼩。 Windows Server Core 从 10GB 以上缩减到 1.5GB,Nano Server 从 1GB 缩⼩到 90MB!
docker进入容器
下载 .NET 核⼼镜像
Windows Server 2019 ⼀经推出,.NET Core团队就发布了 SDK 和运⾏时镜像。您可以⽴即启⽤它们并在 2019 中开始运⾏.NET Core 应⽤程序。
do cker image pull micro so ft/do tnet:2.1-sdk-nano serv er-1809
do cker image pull micro so ft/do tnet:2.1-aspnetco re-runtime-nano serv er-1809
上游 Docker 镜像仍在 Docker Hub 上,只有基础的 Windows 2019 镜像在 MCR 上
试试看!
我推出了我的 .NET Core“whoami”镜像的更新版本,因此您也可以尝试在 Windows Server Core 2019 容器中运⾏ ASP.NET Core 2.1:
do cker co ntainer run -d -p 8080:80 sixeyed/who ami-do tnet:nano serv er-1809
Windows Server 2019 中 Docker 的⼀个增强功能是 loopback 地址现在可以使⽤了,因此您可以使⽤服务器上的 localhost 访问此容器,并使⽤外部计算机上相同的已发布端⼝:
在 Swarm 模式中......
Windows Server 2019 现在⽀持 Docker swarm 模式的⼊⼝⽹络。 这意味着您可以在⼀台服务器上运⾏多个容器,所有容器都在同⼀端⼝上侦听,Docker 将在容器之间对传⼊请求进⾏负载均衡。
将服务器切换到单节点集:
do cker swarm init --adv ertise-addr 127.0.0.1
现在将“whoami”应⽤程序部署为集服务,具有多个副本和⼀个已发布的端⼝:
do cker serv ice create `
--publish 8070:80 `
--replicas 5 `
sixeyed/who ami-do tnet:nano serv er-1809
现在,当您从外部浏览到 VM 时,Docker将在托管该服务的五个容器之间对请求进⾏负载均衡:
不⽌于此
Windows Server 2016 仍然⾮常适合⽣产,但是 Windows Server 2019 使 Windows 容器更接近于 Linux 容器的特性,并且解决了 2016 中的⼀些棘⼿问题。
点击下列标题,阅读更多⼲货

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。