如何在 Docker 上部署支持 GPU 的 Ollama 服务

关键词:Docker、GPU、Ollama、部署、Docker Compose、nvidia-container-toolkit

在现代计算环境中,利用 GPU 进行计算加速变得越来越重要。本文将介绍如何在 Docker 上部署支持 GPU 的 Ollama 服务。我们将分别介绍使用 Docker Compose 文件和命令模式两种方法,并确保所有配置项都完整无误。

1. 安装 NVIDIA 容器工具

首先,需要确保你的系统已经安装了 NVIDIA 容器工具 nvidia-container-toolkit。这是让 Docker 容器访问 GPU 的关键步骤。

  • 01
  • 02
sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker

2. 使用 Docker Compose 文件部署 Ollama

以下是一个完整的 docker-compose.yml 文件示例,配置了 Ollama 服务以支持 GPU:

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
version: '3.8' networks:   1panel-network:       external: true services:   ollama:       container_name: my_ollama_container       environment:           OLLAMA_HOST: 0.0.0.0:11434           OLLAMA_ORIGINS: '*'       image: ollama/ollama:0.3.1       labels:           createdBy: Apps       networks:           - 1panel-network       ports:           - "192.168.1.100:8080:11434"       restart: unless-stopped       tty: true       volumes:           - ./data:/root/.ollama       deploy:           resources:               reservations:                   devices:                       - capabilities: [gpu]       runtime: nvidia

将上述 docker-compose.yml 文件内容保存到你的项目目录中,然后使用以下命令启动服务:

    docker-compose up -d

    3. 使用命令模式部署 Ollama

    如果你更喜欢使用命令模式来部署 Ollama,可以使用以下命令:

    • 01
    • 02
    • 03
    • 04
    • 05
    • 06
    • 07
    • 08
    • 09
    • 10
    • 11
    docker run -d \    --name my_ollama_container \    --gpus all \    --network 1panel-network \    --env OLLAMA_HOST=0.0.0.0:11434 \    --env OLLAMA_ORIGINS='*' \    --label createdBy=Apps \    -p 192.168.1.100:8080:11434 \    --restart unless-stopped \    -v ./data:/root/.ollama \   ollama/ollama:0.3.1 \    --tty true

    4. 解释命令中的各个部分

    • docker run -d:以守护进程模式运行容器。

    • --name my_ollama_container:指定容器的名称。

    • --gpus all:使容器可以访问所有 GPU。

    • --network 1panel-network:将容器连接到 1panel-network 网络。

    • --env OLLAMA_HOST=0.0.0.0:11434:设置环境变量 OLLAMA_HOST

    • --env OLLAMA_ORIGINS='*':设置环境变量 OLLAMA_ORIGINS

    • --label createdBy=Apps:添加一个标签 createdBy=Apps

    • -p 192.168.1.100:8080:11434:将主机的端口映射到容器的端口。

    • --restart unless-stopped:设置容器自动重启策略,除非手动停止。

    • -v ./data:/root/.ollama:挂载本地目录 ./data 到容器内的 /root/.ollama

    • ollama/ollama:0.3.1:使用的镜像及其版本。

    • --tty true:分配一个伪终端。

    5. 运行容器

    执行上述命令后,Ollama 容器将启动并使用所有可用的 CPU、内存和 GPU 资源。如果在运行过程中遇到问题,可以检查以下内容:

    • 确保 NVIDIA 驱动已经正确安装,并且可以正常工作。

    • 使用 nvidia-smi 命令检查 GPU 状态,确保 GPU 处于可用状态。

    • 检查 Docker 容器日志,确保没有与 GPU 相关的错误信息。

    通过这些步骤,你可以成功部署并运行支持 GPU 的 Ollama 服务。希望这篇教程对你有所帮助。如果有任何问题,请随时联系。