WSL2+docker+ollama+deepseek(使用GPU)

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

### 配置和使用 Docker 中的 Ollama GPU 支持 #### 安装 NVIDIA 容器工具包 为了使 Docker 能够识别并利用 N 卡 GPU,在 Ubuntu 上需先安装 NVIDIA 容器工具包[^1]。 ```bash distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker ``` #### 使用 Docker Compose 启动带有 GPUOllama 服务 对于希望启动具有 GPU 加速功能的 Ollama 服务而言,可以采用如下命令来运行容器: ```bash docker run -d \ --gpus all \ -v /opt/ai/ollama:/root/.ollama \ -p 11434:11434 \ --name ollama_gpu \ ollama/ollama ``` 此操作会分配所有的可用 GPU 给该容器,并将其挂载指定目录以及端口映射到主机上[^2]。 #### 验证 GPU 是否被正确识别 完成上述设置之后,可以通过执行特定测试命令确认 GPU 已经成功连接至 Docker 环境之中: ```bash docker run --rm --gpus all nvidia/cuda:12.0.1-runtime-ubuntu22.04 nvidia-smi ``` 如果一切正常,则应该能够看到有关已安装图形处理器的信息列表显示出来[^3]。 #### 特殊环境下的配置 (例如 WSL2) 当处于 Windows Subsystem for Linux 2 (WSL2) 平台之上时,除了常规步骤外还需要额外注意一些细节。比如按照官方指南调整 WSL2 设置以确保其能良好支持 GPU 功能[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值