尽管 .NET Core 是主流方向,但现有 ASP.NET 4.7 应用因重构成本较高,短期内难以全面迁移。本节介绍如何在 Windows Server 环境下搭建 Docker 容器,辅助现有应用实现微服务化改造。
搭建环境
准备:操作系统需选用 Windows Server 2016(或更高版本),本文以 Windows Server 2019 为例。
在 Windows 和 Linux 上,Docker 镜像容器可以本地化运行。但是 Windows 镜像只能运行在 Windows 主机上,Linux 镜像可以运行在 Linux 和 Windows 主机上,这意味着镜像需要托管到服务器或虚拟机上。
安装完 Windows Server 2019 后,需要安装 Docker。Windows Server 2019 自带 Docker EE 支持。
使用 PowerShell 脚本安装:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -Force
如果一切正常,则安装完毕。若出现文件未找到错误,可使用以下脚本下载安装包(版本号可根据实际情况替换):
Start-BitsTransfer -Source https://dockermsft.blob.core.windows.net/dockercontainer/docker-18-09-1.zip -Destination docker-18-09-1.zip
然后重新执行安装命令,并将下载的文件拷贝到丢失文件的路径。或者执行:
Find-Package -ProviderName DockerMsftProvider | Install-Package -Verbose
在 Docker 内安装 Windows Server Core 镜像:
docker pull mcr.microsoft.com/windows/servercore:ltsc2019
启动 Windows Server Core 镜像:
docker run -d --name iisserver -p 8000:80 -p 1872:1872 mcr.microsoft.com/windows/servercore:ltsc2019 powershell.exe
测试环境
访问 Windows Server 2019 主机的 8000 端口。注意如果有防火墙,需要开启 8000 端口。
curl http://localhost:8000
访问地址后返回默认页面提示即表示成功。
管理 IIS
为了方便管理 IIS,建议使用 IIS 管理工具。
进入 Docker 容器(请将 {container_id} 替换为实际容器 ID):
docker exec -it {container_id} powershell.exe
进入容器后安装 IIS 管理组件:
Install-WindowsFeature -name Web-Mgmt-Service
New-ItemProperty -Path HKLM:\\software\\microsoft\\WebManagement\\Server -Name EnableRemoteManagement -Value 1 -Force
net start wmsvc
增加一个管理账号:
net user <username> <password> /ADD
net localgroup administrators <username> /add
查看 IP 地址:
ipconfig
使用 IIS 管理工具连接到容器,输入 IP 地址、账号和密码即可连接。


