上一篇 下一篇 分享链接 返回 返回顶部

一套命令搞定:AI 工具私有化 Docker 部署实战指南

发布人:慈云数据-客服中心 发布时间:9小时前 阅读量:2

AI工具 Docker部署教程|附完整命令

随着大模型与 AI 应用的普及,越来越多开发者希望把常用的 AI 工具部署到自己的服务器、本地电脑或内网环境中。相比直接使用在线 SaaS 服务,私有化部署具有数据可控、成本可控、可二次开发、便于团队协作等优势。

而在众多部署方式中,Docker 是目前最推荐的方式之一。它可以将应用运行所需的环境、依赖、配置统一封装,避免“我电脑能跑,你电脑跑不了”的问题。无论你是部署 AI 对话工具、知识库问答系统、文生图服务,还是本地大模型管理平台,Docker 都能大幅降低部署难度。

本文将以通用 AI 工具部署思路为主,结合常见的 AI Web 应用场景,提供一套完整、可落地的 Docker 部署教程,并附上常用命令,适合新手和有一定服务器经验的开发者参考。


一、适合 Docker 部署的 AI 工具类型

在开始之前,我们先了解一下哪些 AI 工具适合使用 Docker 部署。

常见类型包括:

  1. AI 聊天 Web 工具
    例如 ChatGPT Web、Open WebUI、LobeChat、NextChat 等。

  2. 本地大模型管理工具
    例如 Ollama、LM Studio 的服务端替代方案、LocalAI 等。

  3. AI 知识库问答系统
    例如 Dify、FastGPT、AnythingLLM、LangChain-Chatchat 等。

  4. AI 绘图工具
    例如 Stable Diffusion WebUI、ComfyUI 等。

  5. AI 工作流平台
    例如 Dify、Flowise、n8n + AI 节点等。

  6. 向量数据库与 AI 基础组件
    例如 Milvus、Qdrant、Chroma、PostgreSQL + pgvector、Redis 等。

这些工具往往依赖 Node.js、Python、数据库、向量库、模型文件、GPU 驱动等环境。如果手动安装,步骤复杂且容易出错;而使用 Docker,则可以通过几条命令快速完成部署。


二、部署前准备

1. 准备服务器

你可以选择以下环境之一:

  • 本地电脑:Windows、macOS、Linux
  • 云服务器:Ubuntu、Debian、CentOS
  • 内网服务器:NAS、工作站、小型服务器
  • GPU 服务器:适合部署大模型推理和 AI 绘图服务

如果只是部署 AI 聊天 Web 工具,普通 2 核 4G 服务器通常够用。
如果要运行本地大模型或 Stable Diffusion,建议配置如下:

场景 推荐配置
AI Web 前端工具 1 核 1G 起
AI 知识库系统 2 核 4G 起
本地 7B 大模型 4 核 16G 起,建议 GPU
Stable Diffusion NVIDIA 显卡,显存 8G 起
多用户团队服务 4 核 8G 或更高

本文命令主要以 Ubuntu 22.04 为例,其他 Linux 发行版可按需调整。


三、安装 Docker

1. 更新系统软件包

sudo apt update
sudo apt upgrade -y

2. 安装必要依赖

sudo apt install -y ca-certificates curl gnupg lsb-release

3. 添加 Docker 官方 GPG 密钥

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

4. 添加 Docker 软件源

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. 安装 Docker Engine

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

6. 检查 Docker 是否安装成功

docker --version
docker compose version

输出类似:

Docker version 26.x.x
Docker Compose version v2.x.x

说明 Docker 已安装成功。


四、配置 Docker 开机自启

部署 AI 工具通常需要长期运行,因此建议开启 Docker 服务自启动。

sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker

如果状态显示 active running,说明 Docker 正常运行。


五、配置当前用户免 sudo 使用 Docker

默认情况下,普通用户执行 Docker 命令可能需要加 sudo。为了方便操作,可以将当前用户加入 docker 用户组。

sudo usermod -aG docker $USER

然后退出当前终端,重新登录,执行:

docker ps

如果没有权限错误,说明配置成功。

注意:加入 docker 用户组后,该用户基本拥有较高系统权限,请确保服务器账号安全。


六、配置 Docker 镜像加速

如果你在国内服务器上拉取镜像速度较慢,可以配置镜像加速。不同云服务商提供的加速地址不同,下面给出一个通用配置示例。

创建或编辑 Docker 配置文件:

sudo mkdir -p /etc/docker

sudo nano /etc/docker/daemon.json

写入以下内容:

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live",
    "https://hub.rat.dev"
  ]
}

保存后重启 Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

验证配置:

docker info

查看输出中是否包含 Registry Mirrors


七、Docker 常用基础命令

在正式部署 AI 工具前,建议先掌握以下常用命令。

1. 查看 Docker 版本

docker --version
docker compose version

2. 查看正在运行的容器

docker ps

3. 查看所有容器

docker ps -a

4. 查看本地镜像

docker images

5. 拉取镜像

docker pull 镜像名:标签

例如:

docker pull nginx:latest

6. 启动容器

docker run -d --name 容器名 -p 主机端口:容器端口 镜像名

7. 停止容器

docker stop 容器名

8. 启动已停止容器

docker start 容器名

9. 重启容器

docker restart 容器名

10. 删除容器

docker rm 容器名

如果容器正在运行,需要先停止,或者使用:

docker rm -f 容器名

11. 删除镜像

docker rmi 镜像名

12. 查看容器日志

docker logs 容器名

实时查看日志:

docker logs -f 容器名

13. 进入容器内部

docker exec -it 容器名 bash

如果容器中没有 bash,可以使用:

docker exec -it 容器名 sh

14. 查看 Docker 占用空间

docker system df

15. 清理无用资源

docker system prune -a

注意:该命令会删除未使用的镜像、容器、网络和缓存,生产环境请谨慎执行。


八、使用 Docker 部署 Ollama 本地大模型服务

Ollama 是目前非常流行的本地大模型运行工具,支持 Llama、Qwen、Mistral、Gemma 等多种模型。使用 Docker 部署 Ollama 非常方便。

1. 创建数据目录

mkdir -p ~/docker/ollama

2. 启动 Ollama 容器

docker run -d \
  --name ollama \
  -p 11434:11434 \
  -v ~/docker/ollama:/root/.ollama \
  --restart unless-stopped \
  ollama/ollama:latest

参数说明:

参数 说明
-d 后台运行
--name ollama 容器名称
-p 11434:11434 映射服务端口
-v ~/docker/ollama:/root/.ollama 持久化模型数据
--restart unless-stopped 容器异常退出后自动重启
ollama/ollama:latest 使用的镜像

3. 查看容器状态

docker ps

4. 拉取并运行模型

进入容器:

docker exec -it ollama bash

拉取 Qwen 模型:

ollama pull qwen2.5:7b

运行模型:

ollama run qwen2.5:7b

也可以直接通过 Docker 命令执行:

docker exec -it ollama ollama run qwen2.5:7b

5. 测试 Ollama API

在宿主机执行:

curl http://localhost:11434/api/generate -d '{
  "model": "qwen2.5:7b",
  "prompt": "请用中文介绍一下Docker部署AI工具的优势",
  "stream": false
}'

如果返回模型生成内容,则说明 Ollama 部署成功。


九、使用 Docker 部署 Open WebUI

Ollama 提供的是模型运行服务,但它本身没有完整的网页聊天界面。我们可以搭配 Open WebUI,构建一个类似 ChatGPT 的本地 AI 对话系统。

1. 创建数据目录

mkdir -p ~/docker/open-webui

2. 启动 Open WebUI

如果 Open WebUI 与 Ollama 在同一台机器上,可以使用以下命令:

docker run -d \
  --name open-webui \
  -p 3000:8080 \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -v ~/docker/open-webui:/app/backend/data \
  --add-host=host.docker.internal:host-gateway \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

访问地址:

http://服务器IP:3000

首次进入需要注册管理员账号,注册完成后即可选择 Ollama 中已下载的模型进行对话。

3. 如果 Ollama 和 Open WebUI 使用同一个 Docker 网络

也可以创建自定义网络:

docker network create ai-net

将 Ollama 加入网络:

docker network connect ai-net ollama

重新部署 Open WebUI:

docker rm -f open-webui

docker run -d \
  --name open-webui \
  --network ai-net \
  -p 3000:8080 \
  -e OLLAMA_BASE_URL=http://ollama:11434 \
  -v ~/docker/open-webui:/app/backend/data \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

这种方式更适合多容器协作。


十、使用 Docker Compose 管理 AI 服务

当 AI 工具包含多个组件时,推荐使用 Docker Compose 统一管理。比如我们要同时部署 Ollama 和 Open WebUI,可以写一个 docker-compose.yml 文件。

1. 创建项目目录

mkdir -p ~/docker/ai-stack
cd ~/docker/ai-stack

2. 编写 docker-compose.yml

nano docker-compose.yml

写入以下内容:

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ./ollama:/root/.ollama
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - ./open-webui:/app/backend/data
    depends_on:
      - ollama
    restart: unless-stopped

3. 启动服务

docker compose up -d

4. 查看服务状态

docker compose ps

5. 查看日志

docker compose logs -f

只查看 Open WebUI 日志:

docker compose logs -f open-webui

6. 停止服务

docker compose down

7. 更新服务

docker compose pull
docker compose up -d

十一、配置 GPU 加速

如果你的服务器有 NVIDIA 显卡,并且希望 Ollama 或 Stable Diffusion 使用 GPU,需要安装 NVIDIA 驱动和 NVIDIA Container Toolkit。

1. 检查显卡

nvidia-smi

如果能看到显卡信息,说明驱动正常。

2. 安装 NVIDIA Container Toolkit

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 update

sudo apt install -y nvidia-container-toolkit

3. 配置 Docker 使用 NVIDIA 运行时

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

4. 测试 GPU 容器

docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi

如果容器内能正常显示显卡信息,说明 GPU 支持配置成功。

5. 使用 GPU 启动 Ollama

docker rm -f ollama

docker run -d \
  --name ollama \
  --gpus all \
  -p 11434:11434 \
  -v ~/docker/ollama:/root/.ollama \
  --restart unless-stopped \
  ollama/ollama:latest

十二、部署 AI 工具时的端口规划

Docker 部署 AI 工具时,端口冲突是新手常见问题。建议提前规划端口。

服务 默认端口 建议映射
Ollama 11434 11434
Open WebUI 8080 3000
Dify 多端口 根据 compose 配置
FastGPT 3000 3001
AnythingLLM 3001 3002
Stable Diffusion WebUI 7860 7860
ComfyUI 8188 8188
Qdrant 6333 6333
PostgreSQL 5432 不建议公网开放
Redis 6379 不建议公网开放

查看端口占用:

sudo ss -tulnp

或者:

sudo lsof -i:3000

如果端口被占用,可以修改 Docker 启动命令中的主机端口。例如:

-p 3001:8080

表示将宿主机的 3001 端口映射到容器的 8080 端口。


十三、配置防火墙

如果你使用云服务器,需要在云厂商安全组中开放对应端口。例如:

  • Open WebUI:3000
  • Ollama API:11434
  • Stable Diffusion:7860
  • ComfyUI:8188

如果服务器启用了 UFW 防火墙,可以使用以下命令:

sudo ufw allow 22/tcp
sudo ufw allow 3000/tcp
sudo ufw allow 11434/tcp
sudo ufw enable
sudo ufw status

安全建议:不要直接将数据库端口、Redis 端口、向量数据库端口暴露到公网。


十四、配置反向代理与 HTTPS

如果希望通过域名访问 AI 工具,例如:

https://ai.example.com

可以使用 Nginx 反向代理。

1. 安装 Nginx

sudo apt install -y nginx

2. 创建站点配置

sudo nano /etc/nginx/sites-available/ai.example.com

写入示例配置:

server {
    listen 80;
    server_name ai.example.com;

    client_max_body_size 100M;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

启用配置:

sudo ln -s /etc/nginx/sites-available/ai.example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

3. 申请 HTTPS 证书

安装 Certbot:

sudo apt install -y certbot python3-certbot-nginx

申请证书:

sudo certbot --nginx -d ai.example.com

完成后即可使用 HTTPS 访问。


十五、数据持久化与备份

AI 工具通常会产生以下数据:

  • 用户账号
  • 聊天记录
  • 知识库文件
  • 向量数据
  • 模型文件
  • 配置文件

因此一定要做好数据持久化和备份。Docker 中通常使用 -v 或 Compose 的 volumes 挂载目录。

例如:

-v ~/docker/open-webui:/app/backend/data

表示将容器内数据保存到宿主机目录:

~/docker/open-webui

1. 手动备份目录

tar -czvf ai-stack-backup.tar.gz ~/docker/ai-stack

2. 恢复数据

tar -xzvf ai-stack-backup.tar.gz -C /

3. 推荐备份策略

建议:

  • 每日备份数据库
  • 每周备份完整应用目录
  • 重要知识库文件单独备份
  • 模型文件可不频繁备份,因为体积较大,可重新下载
  • 备份文件不要只放在同一台服务器上

十六、常见问题排查

1. 容器启动失败怎么办?

查看日志:

docker logs 容器名

如果使用 Compose:

docker compose logs -f

重点关注以下错误:

  • 端口被占用
  • 环境变量配置错误
  • 数据库连接失败
  • 权限不足
  • 镜像拉取失败
  • 内存不足

2. 访问不了 Web 页面怎么办?

检查容器是否运行:

docker ps

检查端口是否监听:

sudo ss -tulnp | grep 3000

检查防火墙:

sudo ufw status

检查云服务器安全组是否放行端口。


3. Ollama 模型下载很慢怎么办?

可以尝试:

docker exec -it ollama ollama pull qwen2.5:7b

如果网络环境较差,建议使用代理、镜像站或提前在本地下载模型后迁移模型目录。

模型目录一般挂载在:

~/docker/ollama

4. Open WebUI 连接不上 Ollama 怎么办?

如果使用单独 docker run 部署,确认环境变量:

-e OLLAMA_BASE_URL=http://host.docker.internal:11434

并且添加:

--add-host=host.docker.internal:host-gateway

如果使用 Docker Compose,建议使用服务名:

environment:
  - OLLAMA_BASE_URL=http://ollama:11434

5. 服务器内存不足怎么办?

查看内存:

free -h

查看容器资源占用:

docker stats

可以尝试:

  • 使用更小的模型,例如 1.5B、3B
  • 减少并发用户
  • 增加 swap
  • 升级服务器配置
  • 使用 GPU 推理
  • 关闭不必要的容器

创建 4G swap 示例:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
free -h

设置开机自动挂载:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

十七、生产环境安全建议

如果你准备将 AI 工具开放给团队或公网用户,建议做好以下安全措施:

  1. 开启 HTTPS
    不建议长期使用 HTTP 明文访问。

  2. 设置强密码
    管理员账号必须使用复杂密码。

  3. 关闭不必要端口
    只开放 Web 访问端口,不要暴露数据库和 Redis。

  4. 限制 Ollama API 公网访问
    Ollama 默认没有复杂鉴权机制,不建议直接暴露 11434 到公网。

  5. 定期更新镜像
    使用:

    docker compose pull
    docker compose up -d
  6. 定期备份数据
    尤其是知识库、用户数据和数据库。

  7. 配置服务器防火墙
    只允许必要端口访问。

  8. 避免使用 root 账号长期操作
    建议使用普通用户并按需提升权限。


十八、完整一键部署示例

下面给出一个较完整的 Ollama + Open WebUI 部署示例,适合直接复制使用。

mkdir -p ~/docker/ai-stack
cd ~/docker/ai-stack

cat > docker-compose.yml <<'EOF'
services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ./ollama:/root/.ollama
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - ./open-webui:/app/backend/data
    depends_on:
      - ollama
    restart: unless-stopped
EOF

docker compose up -d

docker compose ps

部署完成后,访问:

http://服务器IP:3000

拉取模型:

docker exec -it ollama ollama pull qwen2.5:7b

运行测试:

docker exec -it ollama ollama run qwen2.5:7b

十九、总结

使用 Docker 部署 AI 工具,可以显著降低环境配置成本,让 AI 应用更容易迁移、升级和维护。对于个人开发者来说,Docker 可以帮助你快速搭建本地 AI 助手、知识库和模型服务;对于团队来说,Docker 则可以统一部署标准,提升协作效率。

本文以 Docker 基础安装、常用命令、Ollama 部署、Open WebUI 部署、Docker Compose 编排、GPU 加速、反向代理、数据备份和常见问题排查为主线,给出了一套较完整的 AI 工具部署流程。

如果你是新手,建议先从以下组合开始:

Ollama + Open WebUI

这套方案部署简单、体验直观,非常适合作为本地或私有化 AI 助手的入门方案。后续你可以继续扩展 Dify、FastGPT、Qdrant、PostgreSQL、Redis 等组件,逐步搭建更完整的 AI 应用平台。

目录结构
全文