前置条件
- windows系统
- 已有wsl2环境以及用其安装ubuntu系统,本机使用22.04.5
- 搭建docker以及docker desktop环境,在docker desktop中,settings->resources->WSL integration,勾选wsl系统
- nvidia显卡
- 良好的网络条件
nvidia-container插件准备
进入wsl2中ubuntu虚拟机,输入命令
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
重启docker
sudo systemctl restart docker
接下来进入windows系统docker desktop,settings->docker engine,在json文本中添加
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
本机最终呈现完整json代码如下:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
apply&restart
无法正常重启重启电脑应该也一样
启动容器
首先启动ollama容器,windows中shell运行:
docker run -d --name deepseek_gpu --gpus all -p 11434:11434 -v D:\ollama_data:/root/.ollama ollama/ollama
然后是webui,有多种open-webui的镜像我们采用比较流行的
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://host.docker.internal:11434 -v open-webui:/app/backend/data --name openwebui --restart always --gpus all dyrnq/open-webui:latest
这里有几点需要注意:
- ollama容器中
-v
及之后参数是将容器内文件和windows内文件进行映射,可不加 - open-webui的默认端口是常用端口
8080
,我们选择用本地3000
端口来映射容器内8080
端口 - open-webui的
OLLAMA_BASE_URL
参数需指定的运行大模型的地址+端口,docker运行的ollama已经映射到windows系统的localhost:11434
,但我们在运行open-webui时不能使用localhost或者127.0.0.1
,因为其指定的是本容器的地址而非运行容器的windows地址,此时需要使用docker特殊的域名http://host.docker.internal
来指定.
安装deepseek-r1
此时已经可以在webui中使用大模型了,浏览器输入localhost:3000
即可。
接下来我们需要安装deepseek-r1
进入前面已经运行的ollama容器,可以直接docker desktop 中container点击进入ollama的容器,在exec中输入命令:
ollama run deepseek-r1
即可,参考ollama官网根据pc性能可在后面附加参数
浏览器进入localhost:3000
.