windows利用docker搭建本地deepseek及webui

Source

前置条件

  1. windows系统
  2. 已有wsl2环境以及用其安装ubuntu系统,本机使用22.04.5
  3. 搭建docker以及docker desktop环境,在docker desktop中,settings->resources->WSL integration,勾选wsl系统
  4. nvidia显卡
  5. 良好的网络条件

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

这里有几点需要注意:

  1. ollama容器中-v及之后参数是将容器内文件和windows内文件进行映射,可不加
  2. open-webui的默认端口是常用端口8080,我们选择用本地3000端口来映射容器内8080端口
  3. 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.
在这里插入图片描述

完成