WSL2+Docker+Ollama,本地部署大模型实践(Qwen1.8b)

本篇文章主要讲解部署思路和实践经验,先解释一下WSL2、Docker、Ollama。

  1. WSL2 :可以通俗理解成轻量化虚拟机,但和传统 VMware/VirtualBox 虚拟机不一样。它是 Windows 内置的轻量 Linux 内核,不用单独装完整的 Linux 虚拟机,性能损耗更低,能直接在 Windows 上跑 Linux 程序。
  2. Docker:容器化引擎。用来在 Linux 环境里打包、运行应用服务。我们这里用 Docker 把 Ollama 这个软件打包成容器,隔离环境,一键启动。
  3. Ollama:大模型管理工具。专门负责大模型的下载、本地加载、推理运行,并对外提供 HTTP 接口。

详细说明:

  • WSL2:Windows 内置 Linux 子系统,不需要安装虚拟机,性能比 VMware 更好;
    Docker:容器引擎,用来运行 Ollama 服务程序;
    Ollama:大模型管理工具,负责拉取、加载、运行 LLM;
    两层镜像 / 模型区分(新手极易混淆)
    • Docker 镜像:ollama/ollama,Ollama 软件包,Docker 负责管理;
    • LLM 大模型权重:qwen:1.8b,千问模型,Ollama 负责管理,存放在 D 盘挂载目录。

目录

一、安装 WSL 发行版(Ubuntu22.04,离线导入 D 盘)

1.安装 WSL 发行版(Ubuntu22.04,离线导入 D 盘),这里不采取自动拉取安装,原因是WSL默认会安装到C盘,占用电脑磁盘内存,所以采取下载Ubuntu22.04的安装包,离线安装。

Ubuntu22.04的安装包地址:链接:https://pan.quark.cn/s/99113a44a14b?pwd=7YLx

提取码:7YLx

这里也说一下怎么在线安装,用管理员身份打开终端(PowerShell),执行命令

bash 复制代码
wsl --install

采用离线安装,下载完安装包后,用管理员身份打开终端(PowerShell),这里我们使用离线 rootfs 包导入方式,将 Ubuntu22.04 安装到 D 盘,避免占用 C 盘空间,

导入离线包Ubuntu22.04

bash 复制代码
# 离线导入Ubuntu22.04到D盘
wsl --import Ubuntu2204 D:\wsl\Ubuntu2204 D:\xxx\ubuntu-22.04.5-wsl-amd64.rootfs.tar.gz --version 2

进入Ubuntu

bash 复制代码
# 进入Ubuntu,默认root管理员账号
wsl -d Ubuntu-2204

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

二、WSL Ubuntu 内安装 Docker

我这里直接用最简单,安装 ubuntu 自带的docker.io,docker安装的方式有很多自行百度即可,这里不过多详解。

bash 复制代码
apt install docker.io -y
bash 复制代码
systemctl enable docker
systemctl start docker
bash 复制代码
docker --version
docker ps

docker镜像源可以使用这个,设置这个的目的是为了拉取ollama的镜像,无脑全部复制在Ubuntu执行

bash 复制代码
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

bash 复制代码
# 拉取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 盘。

bash 复制代码
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 容器内部

bash 复制代码
docker exec -it ollama bash

拉取千问模型

bash 复制代码
ollama pull qwen:1.8b

方案 2

不用进容器,在 WSL 终端用 curl 调用 API 拉模型,适合不想进入容器的场景:

bash 复制代码
curl http://localhost:11434/api/pull -d '{"name":"qwen:1.8b"}'

五、启动模型,进行验证

下载完成之后,在容器内部运行Qwen1.8

bash 复制代码
ollama run qwen:1.8b
相关推荐
影视飓风TIM1 小时前
Linux 进程信号原理与剖析
linux·运维·服务器
缘友一世1 小时前
开源 Linux截图工具闪构(SnapForge)
linux·运维·ubuntu·开源·截图
iCxhust1 小时前
先想好如何测试:让测试驱动你的程序设计
运维·服务器·软件工程·编程的艺术
Nontee2 小时前
K3s vs K8s:差的不是功能,是交付方式
云原生·容器·kubernetes
Philtell2 小时前
突然连接不上内网服务器的问题
运维·服务器
做运维的阿瑞2 小时前
Docker常见故障全方位排查指南
运维·docker·云原生·容器
木子欢儿2 小时前
Zabbix 7.4 Alpine 版 Docker Compose 部署
android·运维·docker·容器·zabbix
朱包林2 小时前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
pengdott2 小时前
Rocky linux9安装Jenkins最新版本2.585
运维·jenkins·流水线