平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“WSL2+Docker+Ollama本地部署大模型思路和实践指南(Qwe……”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
在这个场景下,本篇文章主要讲解部署思路和实践经验,先解释一下WSL2、Docker、Ollama。
- WSL2:能够通俗理解成轻量化虚拟机,但和传统 VMware/VirtualBox 虚拟机不一样。它是 Windows 内置的轻量 Linux 内核实际处理时,,不用单独装完整的 Linux 虚拟机,性能损耗更低,能直接在 Windows 上跑 Linux 程序。
- Docker:容器化引擎。用来在 Linux 环境里打包、运行应用服务。我们这里用 Docker 把 Ollama 这个软件打包成容器,隔离环境,一键启动。
- Ollama:大模型管理工具。专门负责大模型的下载、本地加载、推理运行,同时对外提供 HTTP 接口。
详细说明:
- WSL2:Windows 内置 Linux 子系统,不需安装虚拟机,性能比 VMware 更好;
Docker:容器引擎,用来运行 Ollama 服务程序;
Ollama:大模型管理工具,负责拉取、加载、运行 LLM;
两层镜像 / 模型区分(新手极易混淆)- Docker 镜像:
ollama/ollama,Ollama 软件包,Docker 负责管理; - LLM 大模型权重:
qwen:1.8b,千问模型,Ollama 负责管理,存放在 D 盘挂载目录。
- Docker 镜像:
一、安装 WSL 发行版(Ubuntu22.04,离线导入 D 盘)
1.安装 WSL 发行版(Ubuntu22.04,离线导入 D 盘),这里不采取自动拉取安装,原因是WSL默认会安装到C盘,占用电脑磁盘内存,所以采取下载Ubuntu22.04的安装包,离线安装。
Ubuntu22.04的安装包地址:大家自行百度下载吧。
结合项目来看,这里也说一下怎么在线安装,用管理员身份打开终端(PowerShell),执行命令
wsl --install

从实现思路看,采用离线安装,下载完安装包后,用管理员身份打开终端(PowerShell),这里我们采用离线 rootfs 包导入方式,将 Ubuntu22.04 安装到 D 盘,避免占用 C 盘空间,
导入离线包Ubuntu22.04
# 离线导入Ubuntu22.04到D盘
wsl --import Ubuntu2204 D:\wsl\Ubuntu2204 D:\xxx\ubuntu-22.04.5-wsl-amd64.rootfs.tar.gz --version 2
进入Ubuntu
# 进入Ubuntu,默认root管理员账号
wsl -d Ubuntu-2204

理解这一步时,能够新建一个自己的用户,设置每次进入Ubuntu登陆的用户,这里就不过多讲解了,如果不设置后边很多命令都要开头加上sudo

二、WSL Ubuntu 内安装 Docker
结合项目来看,我这里直接用最轻松,安装 ubuntu 自带的docker.io,docker安装的方式有很多自行百度即可,这里不过多详解。
apt install docker.io -y
systemctl enable docker
systemctl start docker
docker --version
docker ps
从实现思路看,docker镜像源能够采用这个,设置这个的目的是为了拉取ollama的镜像,无脑全部复制在Ubuntu执行
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
EOF
三、拉取ollama镜像,启动ollama容器
打开 D 盘,新建文件夹:wsl_ollama_models
完整路径:
D:\wsl_ollama_models
在这个场景下,启动ollama容器,这里没有pull ollma直接run了,因为docker在运行容器的时候如果没有找到镜像会自动下载。也能够采取自动拉取镜像后再运行容器,两种方案自行选择,我选的是方案1。
方案1
# 拉取ollama镜像
docker pull ollama/ollama
# 启动容器(挂载数据目录,方便保存模型)
docker run -d -v /mnt/d/wsl_ollama_models:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
方案2 说明:/mnt/d/wsl_ollama_models 就是 Windows D 盘的文件夹,模型全部保存在 D 盘。
docker run -d \
-v /mnt/d/wsl_ollama_models:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama

四、借助ollama服务端拉取Qwen:1.8b模型
两种方案实现拉取千问模型,我采用了方案1
方案1
进入 ollama 容器内部
docker exec -it ollama bash
拉取千问模型
ollama pull qwen:1.8b
方案 2
实际处理时,不用进容器,在 WSL 终端用 curl 调用 API 拉模型,适合不想进入容器的场景:
curl http://localhost:11434/api/pull -d '{"name":"qwen:1.8b"}'

五、启动模型,进行验证
下载完成之后,在容器内部运行Qwen1.8
ollama run qwen:1.8b

从实现思路看,总的来说,Ollama本地部署大模型适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。

