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

简介: 现在,您可以直接用 Windows Server 来运行“纯”Docker 容器,其中所有的容器进程都可以直接在主机操作系统上运行。

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


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 天的评估版(浏览 https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2019 获取下载地址)。已经部署了 Windows Server 2019 的虚拟机将很快在 Azure 上提供。

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

screenshot

我将 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-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -name Shell -Value 'PowerShell.exe -noExit'

配置 Windows 功能

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

Install-WindowsFeature -Name Containers
Uninstall-WindowsFeature Windows-Defender
Restart-Computer -Force

配置 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-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 18.03

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

Start-Service docker

下载 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!


下载 .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 上


试试看!

我推出了我的 .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 访问此容器,并使用外部计算机上相同的已发布端口:

screenshot


在 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将在托管该服务的五个容器之间对请求进行负载均衡:

screenshot


不止于此

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

相关文章
|
23天前
|
Linux 虚拟化 Docker
Windows12安装Docker
Windows12安装Docker
59 2
|
1月前
|
Linux Windows
Windows Server 下文件同步
Windows Server 下文件同步
19 0
|
2月前
|
安全 数据安全/隐私保护 Windows
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
159 0
|
2月前
|
存储 安全 网络安全
铁壁如墙-WINDOWS SERVER 2019勒索病毒终极防御指南
铁壁如墙-WINDOWS SERVER 2019勒索病毒终极防御指南
|
2天前
|
编解码 Linux Docker
如何在Windows上使用Docker,搭建一款实用的个人IT工具箱It- Tools
如何在Windows上使用Docker,搭建一款实用的个人IT工具箱It- Tools
7 0
|
3天前
|
开发框架 .NET 数据库
修改windows server 2008 时间和日期格式
修改windows server 2008 时间和日期格式
|
4天前
|
SQL Windows
保姆级:Windows Server 2012上安装.NET Framework 3.5
保姆级:Windows Server 2012上安装.NET Framework 3.5
|
5天前
|
Apache 项目管理 数据安全/隐私保护
Windows如何安装使用TortoiseSVN客户端并实现公网访问本地SVN Server
Windows如何安装使用TortoiseSVN客户端并实现公网访问本地SVN Server
12 0
|
6天前
|
安全 关系型数据库 虚拟化
WIndows Server 远程桌面服务—RDS
WIndows Server 远程桌面服务—RDS
|
6天前
|
开发框架 JavaScript 安全
WIndows Server 2016 部署 Web服务(简单篇)
WIndows Server 2016 部署 Web服务(简单篇)