在 Windows Server 2022 中使用 Containers(容器) 功能,可以让你运行基于 Windows 或 Linux 的容器应用。Windows Server 2022 支持两种类型的容器:
- Windows 容器(Windows Containers)
- Hyper-V 隔离容器(Hyper-V Isolated Containers)
下面是一个完整的指南,帮助你在 Windows Server 2022 with Containers 版本中配置和使用容器。
✅ 第一步:确认系统版本
确保你使用的是 Windows Server 2022 with Containers 版本。可以通过以下命令查看系统信息:
systeminfo | findstr /C:"OS Name" /C:"OS Version"
输出示例:
OS Name: Microsoft Windows Server 2022 Datacenter
OS Version: 10.0.19044 N/A Build 19044
如果你安装的是标准版的 Windows Server 2022,则需要手动安装容器功能。
✅ 第二步:启用容器功能(如需)
如果使用的是标准版(非 with Containers 版本),需要手动安装容器功能:
Install-WindowsFeature -Name Containers
然后重启服务器:
Restart-Computer -Force
✅ 第三步:安装 Docker Engine(推荐)
Docker 是目前最常用的容器管理工具。
方法一:使用 Microsoft 提供的脚本安装 Docker
以管理员身份打开 PowerShell,运行以下命令:
# 安装 Docker-Microsoft Package Provider
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 安装 Docker Engine
Install-Package -Name Docker -ProviderName DockerMsftProvider
# 重启计算机
Restart-Computer -Force
方法二:使用 Chocolatey 安装(可选)
如果你安装了 Chocolatey 包管理器:
choco install docker -y
✅ 第四步:启动并验证 Docker 服务
重启后,在 PowerShell 中执行:
Start-Service Docker
Get-Service Docker
验证是否正常运行:
docker info
你应该看到类似如下输出:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.xx
...
Operating System: Windows Server 2022 Datacenter
✅ 第五步:运行第一个容器
你可以尝试运行一个简单的 Windows 容器来测试:
docker run mcr.microsoft.com/windows/servercore:ltsc2022 cmd echo Hello from Windows Container
或者运行交互式容器:
docker run -it mcr.microsoft.com/windows/servercore:ltsc2022 cmd
如果你想运行 Linux 容器,需要切换到 Linux 模式:
右键任务栏中的 Docker Desktop(如果有 GUI),点击 Switch to Linux containers,或在 PowerShell 中运行:
& 'C:Program FilesDockerDockerDockerCli.exe' -SwitchLinuxEngine
⚠️ 注意:Windows Server 2022 不支持 WSL2,因此不能直接运行 Linux 容器除非启用了虚拟机平台支持(Hyper-V)。
✅ 第六步:创建自定义镜像(Dockerfile 示例)
创建一个文件夹,例如 C:myapp,在里面创建一个名为 Dockerfile 的文件,内容如下:
FROM mcr.microsoft.com/windows/servercore:ltsc2022
CMD ["cmd", "/c", "echo Hello from my custom image!"]
构建镜像:
docker build -t hello-app .
运行它:
docker run hello-app
✅ 第七步:高级用法(可选)
使用 Hyper-V 隔离模式运行容器
docker run --isolation=hyperv -it mcr.microsoft.com/windows/servercore:ltsc2022
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
? 常见问题
Q1:为什么我无法运行 Linux 容器?
A:Windows Server 2022 默认只能运行 Windows 容器。要运行 Linux 容器,必须开启 Hyper-V 并且使用隔离模式,或改用支持 WSL2 的 Windows 系统(如 Windows 10/11 Pro)。
Q2:如何更新 Docker?
使用以下命令升级 Docker 引擎:
Update-Package -Name Docker -ProviderName DockerMsftProvider
✅ 总结
| 步骤 | 内容 |
|---|---|
| 1 | 确认是 Windows Server 2022 with Containers |
| 2 | 安装 Containers 功能(如需要) |
| 3 | 安装 Docker 引擎 |
| 4 | 启动 Docker 服务并测试运行容器 |
| 5 | 编写 Dockerfile 构建自定义镜像 |
| 6 | 可选:使用 Hyper-V 隔离、运行 Linux 容器等 |
如果你有具体的用途(比如部署 ASP.NET Core 应用、SQL Server 容器等),欢迎告诉我,我可以提供更详细的部署指导!
CDNK博客