手把手教您在 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 中的一些棘手问题。

相关文章
|
1月前
|
安全 数据安全/隐私保护 Windows
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
|
1月前
|
存储 安全 网络安全
铁壁如墙-WINDOWS SERVER 2019勒索病毒终极防御指南
铁壁如墙-WINDOWS SERVER 2019勒索病毒终极防御指南
|
1月前
|
网络协议 数据安全/隐私保护 Windows
Windows Server 各版本搭建域控制器实现通过域管理用户(03~19)
Windows Server 各版本搭建域控制器实现通过域管理用户(03~19)
45 1
|
1月前
|
存储 数据安全/隐私保护 索引
Windows Server 各版本搭建文件服务器实现共享文件(03~19)
Windows Server 各版本搭建文件服务器实现共享文件(03~19)
128 1
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
60 0
|
3月前
|
缓存 网络协议 数据安全/隐私保护
[运维笔记] - (命令).Windows server常用网络相关命令总结
[运维笔记] - (命令).Windows server常用网络相关命令总结
185 0
|
1月前
|
安全 数据安全/隐私保护 Windows
无远不至的掌控力:探索Windows Server 2019的远程访问绝招
无远不至的掌控力:探索Windows Server 2019的远程访问绝招
|
1月前
|
Windows
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
|
1月前
|
存储 网络安全 数据安全/隐私保护
Windows Server 2019 IIS HTTPS证书部署流程详解
Windows Server 2019 IIS HTTPS证书部署流程详解
|
1月前
|
存储 Windows
windows server 2019 云服务器看不见硬盘的解决方案
windows server 2019 云服务器看不见硬盘的解决方案