WSL2+docker+ollama+deepseek1.5b(使用GPU)


前言

最近deepseek大火,我觉得windows跑模型那肯定是浪费,但是我又没有单独安装linux系统,正好最近在折腾wsl2,把折腾的过程和结果分享给大家尝尝鲜。

我自己直接安装ollama,无论是混合使用还是独显直连,程序均没有调用gpu,完全不理解不明白发生了什么,明明日志说明已经检测到显卡了,在glxinfo -B中也确认了是n卡而不是核显或者LLVM。

后经搜索决定使用docker+ollama强制使用gpu,效果还是很明显的。


在这里插入图片描述

一、安装wsl2+docker

wsl2可从我之前的博客看到
2025——win11从零配置wsl2+idea(wslg)
在这里插入图片描述

跟我一样使用笔记本的用户,没开独显直连的,可在~/.bashrc文件最下方中添加

export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA #重启生效

强制指定为独显

1.安装docker

安装docker我参考了Windows安装 WSL2、Ubuntu 、docker(详细步骤 , 弃用 docker desktop )
我们直接从他的第五步开始就好

安装结果如下
docker -v
在这里插入图片描述

2.换源

sudo mkdir -p /etc/docker #建立镜像源文件
sudo nano /etc/docker/daemon.json #编辑,讲一下内容粘贴到镜像源中保存
{
    "registry-mirrors": [
	    "https://docker.1ms.run",
	    "https://docker.xuanyuan.me",
	    "https://docker.m.daocloud.io",
	    "https://dockerproxy.com",
	    "https://docker.mirrors.ustc.edu.cn",
	    "https://docker.nju.edu.cn"
    ]
}

在这里插入图片描述

二、安装NVIDIA Container Toolkit + ollama + deepseek1.5b

1.NVIDIA Container Toolkit

必须要安装这个才能让docker强制使用gpu,否则会出现错误
Error response from daemon: could not select device driver “” with capabilities: [[gpu]].

虽然现在的wsl2能够和windows共享一个nvidia驱动,但是不包含容器工具包,docker不认。

根据英伟达官方文档,直接执行以下内容

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

可能会出现各种各样的错误,像什么

报错 gpg: 找不到有效的 OpenPGP 数据

W: 无法下载 https://nvidia.github.io/libnvidia-container/stable/deb/amd64/InRelease Could not handshake: Error in the pull function. [IP: 185.199.109.153 443]
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。

这都是正常的,我查了好久,没能找到有效的替代方案,也没能找到deb包,目前唯一能解决的方案就是更换网络环境,比如魔法或者用手机流量开个热点什么的,没wifi的拿数据线共享网络 ,我是用热点解决的问题,用自家wifi就报错,改为热点就成功。

2.安装ollama+deepseek1.5b开始对话

执行

docker run -d --gpus=all -v /dockerdata/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

docker没换源会很慢很慢,如果源失效了就在上网上找有效源吧!

拉取1.5b

docker exec -it ollama ollama pull deepseek-r1:1.5b

执行 开始对话

docker exec -it ollama ollama run deepseek-r1:1.5b

在这里插入图片描述
在这里插入图片描述
可以看到ai思考的部分和回答的内容

在这里插入图片描述
ps:1.5b显卡都懒得动,如果使用核显,CPU占用率是会飙到100%的,但是使用独显后只会在30%左右,模型吐字速度可以明显的看出差距,如果说cpu是60帧,那gpu就是120帧,不是说60帧不流畅,而是120帧更舒服。

3. 再次启动

wsl关机后需要重新启动ollama

docker start ollama #启动ollama
docker exec -it ollama ollama run deepseek-r1:1.5b #再次运行

三.总结

1.5b还是不能够精准理解用户语言,比如我先让他介绍围棋,再让他介绍下插花,他会联系“”围棋“”来理解并阐述“下插花”在围棋是什么战术(乐),强制性联系了上下文。1.5b不能玩成语接龙(悲)。

要说基本能用怎么也要32b了,14b也就勉勉强强,可惜我笔记本跑不动太大的模型。

大家玩的愉快!

用到的资料
本地部署DeepSeek-R1:1.5B

wsl docker里运行ollama并使用nvidia gpu的一些记录

nvidia-container-toolkit安装问题(OpenPGP)

在WSL2中运行ollama

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐