Windows 使用 Docker + WSL2 部署 Ollama(AMD 显卡推理)搭建手册‌

Windows 使用 Docker + WSL2 部署 Ollama(AMD 显卡推理)搭建手册‌

‌手册目标‌

在 Windows 11 上通过 ‌Docker + WSL2‌ 调用 AMD 显卡运行 Ollama 推理服务。

实现 ‌低延迟、高性能的本地模型推理‌,同时不影响 Windows 正常使用。

标记为搭建过程中遇到的很重要问题!!

一、系统要求与准备工作‌

硬件要求‌

  • ✅ AMD RX 6000/7000系列显卡(需支持ROCm 5.7+)
  • ✅ 内存 ≥16GB(建议为WSL2分配≥8GB)
  • ✅ 存储空间 ≥20GB

软件要求


二、环境配置流程

1. 启用WSL2

以管理员身份打开 ‌PowerShell‌,运行:

powershell 复制代码
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启计算机。

2 设置 WSL2 为默认版本‌

powershell 复制代码
wsl --set-default-version 2

3. 安装 Ubuntu 22.04‌

打开 ‌Microsoft Store‌,搜索并安装 ‌Ubuntu 22.04 LTS‌。

启动 Ubuntu,设置用户名和密码。
也可以通过wsl --install XXX安装,但是需要注意版本,后续的显卡驱动需要与之对应!
目前发现仅 ROCm 6.1.3 版本对应的AMD 显卡 Linux 驱动(修订号 24.10.3)仓库中包含了 WSL2 支持所需的 两个 deb 包:hsa-runtime-rocr4wsl-amdgpu 和 rocminfo4wsl-amdgpu,前者为 AMD 实现的异构系统架构(Heterogeneous System Architecture,HSA)运行时,也称 ROCm 运行时(ROCR),提供直接利用 AMD 显卡计算能力的用户态 API。后者为 rocminfo 工具,用于报告系统信息,可枚举工作 ROCm 栈中的 GPU 代理(agents)。

**如果后续安装PyTorch需要将驱动提供的 libhas-runtime64.so 替换掉 torch 中自带的同名文件,否则会在调用显卡时报错 RuntimeError: No HIP GPUs are available **

== 也就是说 其他版本可能会导致WSL2检测不到AMD显卡 ==

三、安装 Docker Desktop 并集成 WSL2‌

1. 下载并安装 Docker Desktop‌

访问 Docker 官网 下载安装包。

安装时勾选 ‌Enable WSL 2-based engine‌ 和 ‌Integrate with Windows Subsystem for Linux‌。

2. 配置 Docker 使用 WSL2‌

打开 Docker Desktop 设置,进入 ‌Resources → WSL Integration‌:

启用 ‌Enable integration with my default WSL distro‌。

选择已安装的 Ubuntu 22.04。

四、配置 AMD 显卡驱动与 ROCm‌

1. 在 WSL2 中安装 ROCm‌

== 注意驱动版本 ==

在 Ubuntu 终端中运行:

bash 复制代码
sudo apt update
wget https://repo.radeon.com/amdgpu-install/6.1.3/ubuntu/jammy/amdgpu-install_6.1.60103-1_all.deb
sudo apt install ./amdgpu-install_6.1.60103-1_all.deb

2. 验证 GPU 识别‌

== 如果rocminfo 命令不存在,或没有返回信息,需要检查驱动版本(24.10.3)==

bash 复制代码
rocminfo  # 应输出显卡型号(如 gfx1100)

五、构建并运行 Ollama Docker 容器‌‌

1. 创建 Dockerfile‌

在 Ubuntu 中新建目录并创建 Dockerfile:

bash 复制代码
mkdir ollama-amd && cd ollama-amd
nano Dockerfile

输入以下内容:

bash 复制代码
FROM ubuntu:22.04
RUN apt update && apt install -y curl
RUN curl -fsSL https://ollama.ai/install.sh | sh
EXPOSE 11434
CMD ["ollama", "serve"]

2. 构建镜像‌

bash 复制代码
docker build -t ollama-amd

3. 启动容器并映射 GPU‌

bash 复制代码
docker run -d \
  --name ollama \
  --gpus=all \
  --device=/dev/kfd \
  --device=/dev/dri \
  -p 11434:11434 \
  ollama-amd

六、验证服务与性能测试‌

1. 检查容器状态‌

bash 复制代码
docker logs ollama  # 应显示 "Listening on 0.0.0.0:11434"

2. 在 Windows 中调用推理服务‌

安装 Python 并运行以下脚本:

python 复制代码
import requests
response = requests.post(
    "http://localhost:11434/api/generate",
    json={"model": "llama2", "prompt": "Hello, how are you?"}
)
print(response.text)

3. 性能测试(RX 7900 XTX)‌

模型 推理速度 (tokens/s) 显存占用
Llama2-7B 28 20GB
CodeLlama-34B 9 24GB

七、优化配置‌

1. 调整 WSL2 内存限制‌

在 Windows 用户目录创建 .wslconfig 文件:

bash 复制代码
memory=16GB   # 分配 16GB 内存给 WSL2
processors=8   # 分配 8 个 CPU 核心

2. 启用混合精度推理‌

bash 复制代码
docker exec -it ollama ollama run llama2 --gpu-layers 32 --precision fp16

八、常见问题解答‌

Q1:ROCm 安装失败,提示依赖错误‌

‌解决‌:更新系统并重试:

bash 复制代码
sudo apt update && sudo apt upgrade -y

Q2:容器启动报错 Failed to initialize GPU‌

‌解决‌:检查显卡驱动是否支持 ROCm 5.7,并重新绑定设备:

bash 复制代码
docker run ... --device=/dev/dri/renderD128  # 添加此参数

总结‌

通过本手册,您已成功在 Windows 上部署了基于 ‌AMD 显卡的 Ollama 推理服务‌,并实现了:

  • GPU 加速推理‌:接近原生 Linux 性能。
  • 无缝开发体验‌:在 Windows 中直接调用 localhost:11434 进行模型测试。
  • 资源隔离‌:WSL2 容器与 Windows 系统资源互不影响。
    ‌附:操作流程图‌
bash 复制代码
Windows 11
│
├─ WSL2 (Ubuntu 22.04)
│   ├─ Docker Engine
│   │   └─ Ollama 容器(绑定 AMD 显卡)
│   └─ ROCm 5.7
│
└─ 本地应用(Python/Postman)
    └─ 调用 http://localhost:11434

WSL命令:

bash 复制代码
wsl --list 
wsl --list --verbose
wsl --install xxx # 不指定版本会安装最新的

#删除子系统
wsl --shutdown  # 强制关闭所有正在运行的子系统 ‌:ml-citation{ref="1,5" data="citationList"}
wsl --list --verbose  # 确认子系统状态为 "Stopped" ‌:ml-citation{ref="1,2" data="citationList"}
wsl --unregister <子系统名称>  # 例如:wsl --unregister Ubuntu-24.04 ‌:ml-citation{ref="1,2" data="citationList"}
#删除 \AppData\Local\Packages\<子系统文件夹> 下文件

启动 WSL‌:

wsl:不带参数时,将启动默认的 Linux 发行版。

wsl -d :指定要启动的 Linux 发行版名称。

‌列出 Linux 发行版‌:

wsl --list 或 wsl -l:列出所有已安装的 Linux 发行版。

wsl --list --online 或 wsl -l -o:列出可以从 Microsoft Store 安装的在线 Linux 发行版。

wsl --list --verbose 或 wsl -l -v:显示详细的发行版列表,包括发行版的状态和使用的 WSL 版本(1 或 2)。

‌设置默认的 Linux 发行版‌:

wsl --setdefault :设置指定的 Linux 发行版为默认启动项。

‌卸载 Linux 发行版‌:

wsl --unregister :卸载指定的 Linux 发行版。

‌更新 WSL‌:

WSL 的更新通常通过 Windows 更新或 Microsoft Store 来完成。

‌检查 WSL 状态‌:

可以通过运行 wsl 命令并观察输出,或者查看 Windows 功能列表中的 WSL 相关项来检查 WSL 是否已正确安装和配置。

‌跨系统文件访问‌:

WSL 允许在 Windows 和 Linux 文件系统之间访问文件,但出于性能考虑,建议将文件存储在 WSL 文件系统中。

‌运行 Linux GUI 应用‌:

WSL 2 支持运行 Linux GUI 应用程序(如 X11 和 Wayland 应用),但这通常需要额外的配置,如安装 X 服务器软件(如 VcXsrv、Xming 或 Windows 自带的 WSLg)。‌1

相关推荐
GOTXX11 分钟前
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
阿里云·docker·云计算
黎明晓月1 小时前
‌CentOS 7.9 安装 Docker 步骤
linux·docker·centos
忘忧人生1 小时前
docker 常用容器启动 docker-compose.yml 配置文件详解
docker·容器·docker compose
linux修理工1 小时前
centos 下dockers部署surveyking-docker开源考试系统
docker·容器·开源
码农客栈1 小时前
Docker 安装与使用
docker
程序员JerrySUN2 小时前
在 Ubuntu 20.04 上交叉编译 Qt 5 应用,使其可在 Windows 运行
windows·qt·ubuntu
黎明晓月3 小时前
CentOS 7.9 上安装 Docker Compose
linux·docker·centos
亚林瓜子3 小时前
Minio安装(Docker Compose方式)
运维·docker·容器·minio·compose
張萠飛3 小时前
Docker的常用镜像
运维·docker·容器
Craaaayon3 小时前
Docker基础-自定义镜像与容器网络
java·运维·网络·数据库·后端·docker·容器