在 Windows Server 2022 中使用容器功能,主要通过 Windows Containers 和 Docker 实现。以下是详细步骤指南:
1. 安装 Windows Server 2022 容器功能
通过服务器管理器安装
- 打开 服务器管理器 > 添加角色和功能。
- 在 功能 部分勾选:
- Containers(核心容器功能)
- Hyper-V(可选,用于基于 Hyper-V 的隔离容器)
- 完成安装后重启服务器。
通过 PowerShell 安装
Install-WindowsFeature -Name Containers
Restart-Computer
2. 安装 Docker 引擎
Windows Server 2022 推荐使用 Docker EE(Enterprise Edition) 或 Docker CE(Community Edition)。
方法一:使用 Microsoft 提供的脚本安装
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -UseBasicParsing | Invoke-Expression
方法二:手动安装
- 下载 Docker 引擎安装包:
Install-PackageProvider -Name NuGet -Force Install-Module -Name DockerMsftProvider -Force Install-Package -Name docker -ProviderName DockerMsftProvider -Force - 启动 Docker 服务:
Start-Service docker
3. 验证安装
docker version
docker info
如果看到客户端和服务端信息,说明安装成功。
4. 运行第一个容器
运行 Windows 容器
docker run -it mcr.microsoft.com/windows/servercore:ltsc2022 cmd
这会启动一个基于 Windows Server Core 的交互式容器。
运行 IIS 示例
docker run -d -p 80:80 --name iis mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
访问 http://<服务器IP> 可看到默认 IIS 页面。
5. 容器管理
- 列出容器:
docker ps -a - 停止/启动容器:
docker stop <容器ID> docker start <容器ID> - 删除容器:
docker rm <容器ID>
6. 构建自定义镜像
- 创建
Dockerfile文件:FROM mcr.microsoft.com/windows/servercore:ltsc2022 RUN powershell -Command Install-WindowsFeature Web-Server CMD ["ping", "localhost", "-t"] - 构建镜像:
docker build -t mycustomimage . - 运行镜像:
docker run -it mycustomimage
7. 高级配置
使用 Hyper-V 隔离
docker run -it --isolation=hyperv mcr.microsoft.com/windows/servercore:ltsc2022 cmd
持久化存储
docker run -v C:HostData:C:ContainerData mcr.microsoft.com/windows/servercore:ltsc2022 cmd
网络配置
- 查看网络模式:
docker network ls - 创建自定义网络:
docker network create mynetwork
8. 常见问题
- 错误:镜像不兼容
确保镜像标签与系统版本匹配(如ltsc2022对应 Windows Server 2022)。 - 性能问题
使用--isolation=hyperv提高稳定性(尤其在生产环境)。 - Docker 服务无法启动
检查防火墙或运行dockerd --debug查看日志。
9. 参考资源
- Microsoft 官方容器文档
- Docker 官方 Windows 指南
通过以上步骤,你可以快速在 Windows Server 2022 中部署和管理容器。如需更复杂场景(如 Kubernetes 集成),可进一步安装 Azure Kubernetes Service (AKS) 或 Docker Swarm。
云服务器