WSL2+Docker+Ollama,本地部署大模型实践(Qwen1.8b)
本篇文章主要讲解部署思路和实践经验先解释一下WSL2、Docker、Ollama。WSL2可以通俗理解成轻量化虚拟机但和传统 VMware/VirtualBox 虚拟机不一样。它是 Windows 内置的轻量 Linux 内核不用单独装完整的 Linux 虚拟机性能损耗更低能直接在 Windows 上跑 Linux 程序。Docker容器化引擎。用来在 Linux 环境里打包、运行应用服务。我们这里用 Docker 把 Ollama 这个软件打包成容器隔离环境一键启动。Ollama大模型管理工具。专门负责大模型的下载、本地加载、推理运行并对外提供 HTTP 接口。详细说明WSL2Windows 内置 Linux 子系统不需要安装虚拟机性能比 VMware 更好Docker容器引擎用来运行 Ollama 服务程序Ollama大模型管理工具负责拉取、加载、运行 LLM两层镜像 / 模型区分新手极易混淆Docker 镜像ollama/ollamaOllama 软件包Docker 负责管理LLM 大模型权重qwen:1.8b千问模型Ollama 负责管理存放在 D 盘挂载目录。目录一、安装 WSL 发行版Ubuntu22.04离线导入 D 盘二、WSL Ubuntu 内安装 Docker三、拉取ollama镜像启动ollama容器四、通过ollama服务端拉取Qwen1.8b模型五、启动模型进行验证一、安装 WSL 发行版Ubuntu22.04离线导入 D 盘1.安装 WSL 发行版Ubuntu22.04离线导入 D 盘这里不采取自动拉取安装原因是WSL默认会安装到C盘占用电脑磁盘内存所以采取下载Ubuntu22.04的安装包离线安装。Ubuntu22.04的安装包地址链接https://pan.quark.cn/s/99113a44a14b?pwd7YLx提取码7YLx这里也说一下怎么在线安装用管理员身份打开终端PowerShell执行命令wsl--install采用离线安装下载完安装包后用管理员身份打开终端PowerShell这里我们使用离线 rootfs 包导入方式将 Ubuntu22.04 安装到 D 盘避免占用 C 盘空间导入离线包Ubuntu22.04# 离线导入Ubuntu22.04到D盘wsl--importUbuntu2204 D:\wsl\Ubuntu2204 D:\xxx\ubuntu-22.04.5-wsl-amd64.rootfs.tar.gz--version2进入Ubuntu# 进入Ubuntu默认root管理员账号wsl-dUbuntu-2204可以创建一个自己的用户设置每次进入Ubuntu登陆的用户这里就不过多讲解了如果不设置后边很多命令都要开头加上sudo二、WSL Ubuntu 内安装 Docker我这里直接用最简单安装 ubuntu 自带的docker.iodocker安装的方式有很多自行百度即可这里不过多详解。aptinstalldocker.io-ysystemctlenabledockersystemctl startdockerdocker--versiondockerpsdocker镜像源可以使用这个设置这个的目的是为了拉取ollama的镜像无脑全部复制在Ubuntu执行sudotee/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镜像dockerpull ollama/ollama# 启动容器挂载数据目录方便保存模型dockerrun-d-v/mnt/d/wsl_ollama_models:/root/.ollama-p11434:11434--nameollama ollama/ollama方案2说明/mnt/d/wsl_ollama_models就是 Windows D 盘的文件夹模型全部保存在 D 盘。dockerrun-d\-v/mnt/d/wsl_ollama_models:/root/.ollama\-p11434:11434\--nameollama\ollama/ollama四、通过ollama服务端拉取Qwen1.8b模型两种方案实现拉取千问模型我采用了方案1方案1进入 ollama 容器内部dockerexec-itollamabash拉取千问模型ollama pull qwen:1.8b方案 2不用进容器在 WSL 终端用 curl 调用 API 拉模型适合不想进入容器的场景curlhttp://localhost:11434/api/pull-d{name:qwen:1.8b}五、启动模型进行验证下载完成之后在容器内部运行Qwen1.8ollama run qwen:1.8b