在 Windows Server 2019 上部署 Docker 容器,主要需要安装 Docker Desktop for Windows(适用于开发环境)或 Docker EE/CE for Windows Server(适用于生产环境)。由于 Windows Server 2019 是服务器操作系统,通常推荐使用 Docker CE (Community Edition) 配合 Windows Containers 模式。
以下是详细的部署步骤:
前置条件检查
- 系统版本:确保已安装 Windows Server 2019 的标准版或数据中心版(建议更新到最新补丁)。
- 功能启用:必须启用“容器”功能。
- 虚拟化支持:如果是在物理机上运行,需确保 BIOS 中开启了 VT-x/AMD-V;如果是虚拟机,需在 hypervisor 设置中开启嵌套虚拟化。
- 网络:确保服务器有网络连接以拉取镜像。
第一步:启用必要的 Windows 功能
Docker 依赖于 Windows 的容器化功能。你需要通过 PowerShell 以管理员身份运行以下命令来启用所需的功能:
# 启用容器功能
Enable-WindowsOptionalFeature -Online -FeatureName Containers-DisposableClientVM -All
# 启用 Hyper-V(如果使用 Hyper-V 隔离模式,推荐)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
注意:执行完成后通常需要重启服务器。如果仅使用进程隔离模式(Process Isolation),Hyper-V 不是绝对必须的,但为了稳定性和兼容性,建议保留。
第二步:安装 Docker Engine (推荐方式)
在 Windows Server 上,最稳定且官方推荐的方式是使用 Microsoft Container Registry 提供的脚本进行安装,或者手动下载 MSI 安装包。
方法 A:使用 PowerShell 脚本自动安装(推荐)
这是最快的方式,会自动处理依赖项和配置。
- 打开 PowerShell(管理员身份)。
- 运行以下命令下载并执行安装脚本:
# 从 Microsoft 官方仓库获取安装脚本
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/microsoft/Windows-Containers/master/Docker/InstallDocker.ps1" -OutFile InstallDocker.ps1
# 执行安装脚本
.InstallDocker.ps1 -AcceptEula
如果上述链接不可用,也可以直接访问 Microsoft 官方文档 下载最新的 docker-install.msi 安装包。
方法 B:手动安装 MSI 包
- 访问 Microsoft Container Registry 或 GitHub 上的 Docker 发布页。
- 下载对应版本的
Docker-For-Windows.msi或docker-ce-<version>.msi。 - 双击运行安装程序,按照向导完成安装。
第三步:验证安装与切换容器类型
安装完成后,Docker 默认可能处于 Linux 容器模式(如果安装了 Docker Desktop),但在 Server 上通常默认是 Windows 容器。我们需要确认当前模式。
-
打开命令行或 PowerShell,输入:
docker version查看输出中的
Server部分,确认是否显示Windows。 -
切换容器模式(如果需要):
如果 Docker 提示你正在使用 Linux 容器,而你需要运行 Windows 应用(如 .NET Framework 应用),请切换到 Windows 模式:# 切换到 Windows 容器模式 docker context use default docker info | findstr /C:"OSType"注:如果在 Server 2019 上刚安装完,通常默认就是 Windows 模式。如果遇到错误,可以通过任务栏右下角的 Docker 图标右键选择 "Switch to Windows containers"(如果有该选项),或在 PowerShell 中执行
Restart-Service docker后尝试运行docker run --platform=windows hello-world。 -
运行测试容器:
运行一个最简单的测试镜像来验证一切正常:docker run hello-world如果看到 "Hello from Docker!" 的消息,说明部署成功。
第四步:配置生产环境注意事项
在生产环境中,除了基础部署,还需关注以下几点:
- 网络配置:Windows Server 的防火墙可能会阻止容器通信。如果容器无法被外部访问,需要在 Windows 防火墙中添加规则允许 Docker 相关的端口(通常是 2375, 2376, 80, 443 等)。
- 存储驱动:Windows Server 2019 默认使用
npipe管道通信。如果是高并发场景,建议将数据卷挂载到高性能磁盘(如 SSD 或 RAID 阵列),避免使用默认的系统盘。 - 权限管理:确保运行 Docker 服务的用户具有足够的权限,或者将用户加入
Docker Users组。 - 更新策略:定期通过
docker update或重新拉取镜像来保持安全补丁。
常见问题排查
- 错误:
The container is not running或No such image:
这通常是因为本地缓存损坏。尝试清理并重新拉取:docker system prune -a docker pull <image-name> - 错误:
Cannot connect to the Docker daemon:
检查 Docker 服务是否启动:Get-Service docker Start-Service docker - 关于 Hyper-V 隔离:
如果你需要极高的安全性(例如多租户隔离),建议使用 Hyper-V 隔离模式启动容器:docker run --isolation=hyperv ...
通过以上步骤,你的 Windows Server 2019 应该已经成功部署了 Docker 环境,可以开始构建和运行 Windows 或 Linux 容器了。
CLOUD技术博