windows server上安装docker部署linux?

在 Windows Server 上部署 Docker 并运行 Linux 容器,实际上是通过 Docker Desktop(或 Docker Engine for Windows)实现的。Windows Server 本身不支持直接运行 Linux 内核,因此 Docker 会在 Windows 内部启动一个轻量级的虚拟机(基于 Hyper-V 或 WSL2),在这个虚拟机中运行真正的 Linux 环境。

以下是针对 Windows Server 环境的详细实施步骤和关键注意事项:

1. 前置条件检查

在开始之前,请确保您的 Windows Server 满足以下要求:

  • 操作系统版本:支持 Windows Server 2019、2022 或更高版本。
  • 虚拟化支持:BIOS/UEFI 中必须开启虚拟化技术(Intel VT-x / AMD-V)。
  • Hyper-V 功能:需要启用 Hyper-V 角色。
  • WSL2 支持(推荐):如果选择 WSL2 后端,需要安装 WSL2 内核更新。

2. 启用必要的系统功能

打开 PowerShell(以管理员身份运行),依次执行以下命令来启用 Hyper-V 和 Containers 功能:

# 启用 Hyper-V 和容器功能
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All

# 如果需要 WSL2 后端(推荐用于性能和兼容性)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

执行后可能需要重启服务器。

3. 安装 Docker

在 Windows Server 上,通常有两种安装方式,推荐使用 Docker Desktop for Windows,因为它集成了图形化管理界面且配置简单。

方案 A:使用 Docker Desktop (推荐)

  1. 访问 Docker 官网下载页面,下载适用于 Windows Server 的 Docker Desktop 安装包(注意:部分旧版 Docker Desktop 可能不再支持 Server 核心模式,建议下载最新稳定版,或者确认其支持 Server Core)。

    • 注意:Docker Desktop 通常需要完整的桌面体验(GUI)。如果您的服务器是“无头模式”(Server Core,没有图形界面),则无法直接安装 Docker Desktop GUI 版本。
  2. 如果服务器有图形界面(Desktop Experience):

    • 运行安装程序,按照向导完成安装。
    • 安装完成后,启动 Docker Desktop,它会自动配置后端引擎。
  3. 如果服务器是 Server Core(无图形界面)

    • 您不能安装 Docker Desktop GUI。
    • 您需要使用 Docker Engine for Windows(命令行版本)。可以通过 Chocolatey 包管理器安装:
      choco install docker-cli
      # 或者从 GitHub 下载二进制文件并手动配置
    • 然后配置 docker 指向本地守护进程,或者直接通过脚本管理。

方案 B:仅安装 Docker Engine (适合自动化/无 GUI 场景)

如果您不需要图形界面,只想在后台运行服务:

  1. 下载 Docker Engine for Windows 的安装脚本或 MSI 包。
  2. 执行安装脚本初始化引擎。
  3. 验证安装:
    docker version

4. 切换到 Linux 容器模式

安装完成后,Docker 默认可能处于 Windows 容器模式。要运行 Linux 镜像(如 Ubuntu, CentOS, Alpine):

  1. 打开 Docker 设置(如果是 Docker Desktop):

    • 点击右下角托盘图标 -> Settings
    • 进入 GeneralDocker Engine 选项卡。
    • 找到 Switch to Linux containers 按钮并点击切换。
    • 系统会提示重启 Docker 服务,确认后等待重启完成。
  2. 如果是命令行模式(Engine only):

    • 通常需要在启动参数中指定,或者在 daemon.json 中配置,但现代 Docker Engine 通常会自动根据拉取的镜像类型决定后端。

5. 验证与测试

现在您可以尝试拉取并运行一个标准的 Linux 容器了:

# 拉取一个基础的 Linux 镜像
docker pull alpine

# 运行该容器,并在其中执行命令
docker run --rm alpine echo "Hello from Linux container on Windows Server!"

如果看到输出结果,说明 Linux 环境已成功部署。

关键注意事项

  • 性能差异:由于存在虚拟化层(Hyper-V 或 WSL2),I/O 性能会比原生 Linux 略低,但在大多数应用场景下是可接受的。WSL2 后端通常比传统 Hyper-V 虚拟机性能更好。
  • 资源占用:Docker 会占用一定的 CPU 和内存资源,请根据业务需求合理限制容器资源(使用 --memory, --cpus 等参数)。
  • 网络模式:Linux 容器在 Windows 上运行时,网络模式通常是 NAT,外部访问需要通过端口映射(-p host_port:container_port)。
  • 持久化存储:建议使用卷挂载(Volumes)将数据保存到 Windows 宿主机上,避免容器删除后数据丢失。

通过以上步骤,您就可以在 Windows Server 上成功构建一个能够运行 Linux 应用的 Docker 环境。

未经允许不得转载:CLOUD技术博 » windows server上安装docker部署linux?