windows11使用docker部署ollama调用底层GPU
本机环境Windows 11 家庭版:
设备名称 ZZNN-GEGEWU
处理器 Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz 2.30 GHz
机带 RAM 24.0 GB (23.9 GB 可用)
设备 ID 8DA62972-C11C-4E08-9039-18D34E439F64
产品 ID 00326-10000-00000-AA043
系统类型 64 位操作系统, 基于 x64 的处理器
笔和触控 没有可用于此显示器的笔或触控输入
Docker Compose version v2.26.1
Docker version 26.1.1, build 4cf5afa
显卡驱动安装:https://www.nvidia.cn/Download/index.aspx?lang=cn
法1(若此种方法失败则需要使用法2)
先决条件
部署调用底层GPU版 docker-compose文件如下:
备注:
- 最新版docker-destop定义文件方式已发生改变需要去掉
version: '3.8' - 并且建立环境变量定义项目名称环境变量为.env
1
   | COMPOSE_PROJECT_NAME=myproject
   | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
   |  services:   ollama:     image: ollama/ollama:latest     restart: always     ports:       - 11434:11434     volumes:       - ./ollama:/root/.ollama     container_name: ollama               restart: always     environment:       KEEP_GPUS_TIMEOUT: 40       TZ: Asia/Shanghai       OLLAMA_ORIGINS: "*"       OLLAMA_HOST: "0.0.0.0"     networks:       - ollama-docker          deploy:       resources:         reservations:           devices:             - driver: nvidia               count: 1               capabilities:                 - gpu   open-webui:     image: registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:open-webui-main           container_name: open-webui     restart: always     ports:       - "3000:8080"     extra_hosts:       - "host.docker.internal:host-gateway"     volumes:       - open-webui:/app/backend/data     environment:       TZ: Asia/Shanghai       ENABLE_RAG_WEB_SEARCH: True       RAG_WEB_SEARCH_ENGINE: "searxng"       RAG_WEB_SEARCH_RESULT_COUNT: 3       RAG_WEB_SEARCH_CONCURRENT_REQUESTS: 10       SEARXNG_QUERY_URL: "http://searxng:8080/search?q=<query>"       ENABLE_OPENAI_API: False                                                        networks:       - ollama-docker    volumes:   open-webui: networks:   ollama-docker:     external: false
 
 
  | 
备注:直接docker-compose up -d 即可 当提问AI时即可看到显卡正在使用中
效果:

法2 (需要开启科学上网)
参考:Windows 下让 Docker Desktop 关联上 NVidia GPU
(有时候法1会失败此时我们需要配置windows下的linux子系统中的ubuntu20.04)
先决条件:
wsl 安装Ubuntu20.04 安装完成后在ubuntu20.04中执行下方内容
1 2 3
   |  wsl --install Ubuntu-20.04
 
 
  | 

1 2 3 4 5 6 7 8 9 10
   |  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
 
 
  | 
2. 配置 Docker Daemon(本文到此成功 大多数到此步骤也能成功)
执行以下命令:
1 2
   |  sudo nvidia-ctk runtime configure --runtime=docker
 
  | 

此时验证ollama能否正常使用GPU 若不能正常使用则继续下方操作
更好的办法是打开 Docker Desktop 如下操作之后(配置Docker Engine),再重启:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
   | {   "builder": {     "gc": {       "defaultKeepStorage": "20GB",       "enabled": true     }   },   "runtimes": {     "nvidia": {       "path": "nvidia-container-runtime",       "args": []         }     },   "experimental": false }
 
 
  | 

构建完成后效果:

本文参考:
windows 下 docker compose 安装 ollama 和 open-webui ,打造私有GPT_windows系统安装docker并部暑open webui