在 Windows Server 2022 with Containers 上使用容器,主要涉及以下几个步骤:安装容器功能、配置 Docker 或 containerd、运行 Windows 容器或 Hyper-V 隔离容器。下面是一个详细的入门指南:
🧩 一、准备环境
1. 确认系统版本
确保你使用的是 Windows Server 2022 with Containers 版本(可以是 GUI 或 Core),这个版本已经预装了容器功能。
你可以通过以下命令确认:
Get-WindowsEdition -Online
输出应包含:
Edition : ServerStandard
InstallType : ServerCore / Server
🛠️ 二、启用容器功能(如果未安装)
虽然“with Containers”版本默认已安装,但你也可以手动检查并安装:
# 安装容器功能
Install-WindowsFeature -Name Containers
# 重启服务器以应用更改
Restart-Computer
🐳 三、安装 Docker Engine(推荐方式)
Docker 提供了管理容器的工具链,包括 docker run 命令等。
方法 1:使用 Microsoft 的脚本安装 Docker
# 安装 OneGet 提供商
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
# 安装 Docker-Microsoft Package Provider
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# 安装最新版 Docker Engine
Install-Package -Name Docker -ProviderName DockerMsftProvider
# 启动 Docker 服务
Start-Service Docker
# 设置 Docker 开机自启
Set-Service -Name Docker -StartupType Automatic
方法 2:使用 PowerShell 脚本一键安装
# 使用官方脚本安装 Docker
Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/microsoft/WindowsDocker/master/resin-windows-docker-install.ps1 | Invoke-Expression
📦 四、拉取和运行容器
1. 拉取一个 Windows 容器镜像(例如 NanoServer)
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
2. 运行容器
docker run --rm -it mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd
这会启动一个交互式的 NanoServer 容器,并进入 CMD shell。
🔍 五、查看容器状态
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器
docker images # 查看本地镜像
⚙️ 六、容器类型说明
Windows 支持两种容器隔离模式:
| 类型 | 隔离级别 | 性能 | 安全性 |
|---|---|---|---|
| Windows 容器 | 进程级隔离 | 高 | 中 |
| Hyper-V 容器 | 虚拟机级隔离 | 较低 | 高 |
使用 Hyper-V 容器示例:
docker run --isolation=hyperv --rm -it mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd
🧱 七、构建自己的容器镜像
创建一个简单的 Dockerfile 示例:
# 使用基础镜像
FROM mcr.microsoft.com/windows/servercore:ltsc2022
# 创建目录
RUN powershell New-Item -ItemType Directory -Path C:app
# 拷贝文件进去
COPY hello.ps1 C:app
# 设置工作目录
WORKDIR C:app
# 设置启动命令
CMD ["powershell", ".\hello.ps1"]
然后构建并运行:
docker build -t myapp .
docker run --rm myapp
✅ 八、常见问题与注意事项
1. 容器网络问题
- 默认使用 NAT 网络。
- 可以配置透明网络或 L2 Bridge 模式用于外部访问。
2. 镜像兼容性
- 不同版本的 Windows 容器必须与宿主机 OS 兼容(如 LTSC2022 容器只能在 2022 宿主机上运行)。
3. 存储卷挂载
- Windows 容器支持将宿主机路径挂载到容器中:
docker run -v C:hostpath:C:containerpath ...
📚 九、学习资源推荐
- Microsoft 官方文档
- Docker 文档 for Windows
- GitHub 示例仓库:WindowsContainerSamples
如果你有特定的应用场景(比如部署 ASP.NET Core、SQL Server 容器等),我也可以提供详细的操作步骤。欢迎继续提问!
秒懂云