Docker部署AI工具全流程:新手也能学会
从安装 Docker、配置 GPU 到部署 Ollama、Open WebUI、n8n、Dify、LocalAI

封面图:Docker 容器化部署 AI 工具全流程示意
| 文章定位:这是一篇面向新手的网站发布教程,重点解决“AI 工具安装复杂、依赖冲突、换电脑就跑不起来”的问题。读者可以照着本文完成 Docker 安装、容器启动、GPU 验证、服务访问和日常维护。 |
一、标题与导语
爆款标题:Docker部署AI工具全流程:新手也能学会,从零搭建自己的本地AI工具箱
很多 AI 工具看起来很强,但真正安装时经常卡在 Python 版本、CUDA、端口冲突、依赖包、数据库、反向代理等问题上。Docker 的价值,就是把复杂环境封装成容器:你只需要准备 Docker、写好 docker-compose.yml,就能在 Windows、macOS、Linux 或 VPS 上快速启动一套可复制、可迁移、可维护的 AI 服务。
本文会用新手能理解的方式,从 Docker 安装开始,带你搭建常见 AI 工具:本地大模型 Ollama + Open WebUI、自动化工作流 n8n、AI 应用平台 Dify、OpenAI 兼容 API 服务 LocalAI,以及常见 GPU 加速和公网访问配置。
二、本文目录
- 为什么 AI 工具适合用 Docker 部署
- 安装前准备:系统、硬件、网络和目录规划
- Windows / macOS / Linux 安装 Docker
- Docker 常用命令与验证方法
- 第一个 AI 容器:Ollama + Open WebUI
- 进阶部署:n8n、Dify、LocalAI、ComfyUI
- GPU 加速、模型目录与数据卷
- 反向代理、HTTPS 与安全设置
- 常见报错排查
- FAQ、相关阅读、SEO 文档

三、为什么 AI 工具适合用 Docker 部署
- 避免依赖冲突:不同项目可能需要不同 Python、Node、CUDA、数据库版本,容器可以隔离运行环境。
- 迁移更简单:复制 docker-compose.yml 和数据卷,换电脑或换服务器也能快速恢复。
- 便于组合工具:Open WebUI、Ollama、n8n、Dify、PostgreSQL、Redis、Nginx 可以放在同一个 Compose 项目里。
- 更利于维护:启动、停止、升级、查看日志都有统一命令,不用在系统里到处找配置文件。
- 适合本地 AI:模型、向量库、工作流和 API 都能放在自己机器上,更适合学习、测试和私有化场景。
| 一句话理解:Docker 不是 AI 模型本身,而是运行 AI 工具的“标准化环境盒子”。它把程序、依赖、端口、数据目录打包成可重复运行的服务。 |
四、安装前准备:先判断你的部署路线
| 设备/场景 | 推荐路线 | 说明 |
| Windows 10/11 个人电脑 | Docker Desktop + WSL2 | 适合新手,本地跑 Open WebUI、Ollama、n8n;建议把项目目录放到 WSL Linux 文件系统。 |
| macOS Apple Silicon | Docker Desktop for Mac | 适合轻量 AI 服务、WebUI、n8n;GPU 推理支持取决于具体工具,不等同于 NVIDIA CUDA。 |
| Linux 本地服务器 / VPS | Docker Engine + Compose Plugin | 适合长期运行、反向代理、域名、HTTPS、数据库和备份。 |
| 带 NVIDIA GPU 的 Linux 机器 | Docker Engine + NVIDIA Container Toolkit | 适合 vLLM、ComfyUI、Stable Diffusion、GPU 版推理服务。 |
| 只想点几下体验本地模型 | Docker Desktop + Docker Model Runner | 适合快速试用本地模型、OpenAI 兼容接口和 Open WebUI。 |
五、安装 Docker:Windows、macOS、Linux 三条路线
5.1 Windows:推荐 Docker Desktop + WSL2
- 进入 Docker Desktop 官方下载页,下载 Windows 版本安装包。
- 安装时勾选 WSL2 backend。安装完成后重启电脑。
- 打开 Docker Desktop,进入 Settings,确认 WSL integration 已开启。
- 打开 PowerShell 或 Windows Terminal,输入 docker version 和 docker compose version 验证。
- 如果要运行 Linux 容器中的 AI 工具,建议把项目目录放在 Ubuntu 的 home 目录,而不是 C 盘路径。
| # PowerShell / Windows Terminal 验证 wsl –status docker version docker compose version docker run –rm hello-world |
5.2 macOS:区分 Apple Silicon 和 Intel
- 进入 Docker Desktop for Mac 官方下载页,按芯片选择 Apple Silicon 或 Intel 版本。
- 安装后打开 Docker Desktop,等待左下角显示 Docker Engine running。
- 在终端运行 docker version、docker compose version。
- 如果镜像没有 arm64 版本,Apple Silicon Mac 可能需要通过 Rosetta 或 amd64 模拟运行,但性能会下降。
| # macOS 终端验证 docker version docker compose version docker run –rm hello-world |
5.3 Linux / VPS:推荐 Docker Engine + Compose Plugin
服务器部署建议使用 Ubuntu LTS。下面以 Ubuntu / Debian 系为例,实际命令应优先参考 Docker 官方安装文档。
| # 1. 更新系统 sudo apt update sudo apt install -y ca-certificates curl gnupg # 2. 按 Docker 官方文档添加软件源后,安装 Docker Engine 与 Compose 插件 sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 3. 验证 sudo docker run –rm hello-world docker compose version # 4. 可选:把当前用户加入 docker 组,避免每次 sudo sudo usermod -aG docker $USER newgrp docker |
| 服务器提醒:如果是生产环境,不要直接照搬网上的一键脚本。建议先确认系统版本、Docker 官方源、开放端口、防火墙、SSH 安全和备份策略。 |
六、Docker 新手必须掌握的命令
| 用途 | 命令 |
| 查看 Docker 版本 | docker version |
| 查看 Compose 版本 | docker compose version |
| 查看运行中的容器 | docker ps |
| 查看所有容器 | docker ps -a |
| 启动 Compose 项目 | docker compose up -d |
| 停止 Compose 项目 | docker compose down |
| 查看日志 | docker compose logs -f |
| 进入容器 | docker exec -it 容器名 bash |
| 查看镜像 | docker images |
| 清理未使用资源 | docker system prune |
七、第一个实战:用 Docker 部署 Ollama + Open WebUI
这套组合最适合新手入门:Ollama 负责运行本地大模型,Open WebUI 提供类似 ChatGPT 的网页聊天界面。CPU 机器也能跑小模型;有 NVIDIA GPU 的机器可以进一步开启 GPU 加速。
| 适合谁:想要本地聊天、局域网多人使用、搭建私有知识库、测试 DeepSeek/Qwen/Llama/Gemma 等开源模型的读者。 |
7.1 创建项目目录
| mkdir docker-ai-lab cd docker-ai-lab mkdir -p ollama open-webui |
7.2 编写 docker-compose.yml
| services: ollama: image: ollama/ollama:latest container_name: ollama restart: unless-stopped ports: – “11434:11434” volumes: – ollama:/root/.ollama open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui restart: unless-stopped ports: – “3000:8080” environment: – OLLAMA_BASE_URL=http://ollama:11434 volumes: – open-webui:/app/backend/data depends_on: – ollama volumes: ollama: open-webui: |
7.3 启动服务并访问
| docker compose up -d docker compose ps docker compose logs -f |
- 浏览器访问: http://localhost:3000
- 第一次进入 Open WebUI 时创建管理员账号。
- 进入模型设置,确认 Ollama 连接成功。
- 拉取一个小模型测试,例如 qwen3、llama3.2、gemma 等,具体模型名称以模型库为准。
| # 进入 Ollama 容器拉取并运行模型 docker exec -it ollama ollama pull qwen3:8b docker exec -it ollama ollama run qwen3:8b |
7.4 GPU 版 Ollama Compose 示例
如果是 Linux + NVIDIA 显卡,并且已经装好 NVIDIA Container Toolkit,可以使用下面的写法。不同 Docker 版本对 GPU 写法略有差异,生产环境建议结合官方文档验证。
| services: ollama: image: ollama/ollama:latest container_name: ollama restart: unless-stopped ports: – “11434:11434” volumes: – ollama:/root/.ollama deploy: resources: reservations: devices: – driver: nvidia count: all capabilities: [gpu] volumes: ollama: |
八、更简单的新路线:Docker Model Runner + Open WebUI
如果你使用的是新版 Docker Desktop,可以关注 Docker Model Runner。它把本地模型运行能力直接集成到 Docker 生态中,可以通过 Docker Desktop 图形界面或 docker model 命令管理模型,并提供 OpenAI / Ollama 兼容接口。
- 打开 Docker Desktop,确认 Model Runner 已启用。
- 在 Models 标签页选择并下载模型,或使用 docker model 命令。
- 安装 Open WebUI Docker Extension,直接连接本地模型。
- 用浏览器进入 WebUI,开始与本地模型对话。
| # 示例:具体模型名称以 Docker Hub / Docker Desktop 模型列表为准 docker model ls docker model pull <model-name> docker model run <model-name> |
| 适合新手:如果你的目标只是快速体验本地模型,Docker Model Runner + Open WebUI 比手动配置 Ollama 容器更省心;如果你要深度控制模型目录、量化版本、API 网关,则 Ollama / LocalAI / vLLM 路线更灵活。 |

九、常见 AI 工具 Docker 部署模板

9.1 n8n:搭建 AI 自动化工作流
n8n 适合把 AI 模型、表格、邮件、RSS、数据库、WordPress、飞书/钉钉、Webhook 等工具串成自动化流程。个人测试可用 SQLite;长期运行建议搭配 PostgreSQL。
| services: n8n: image: n8nio/n8n:latest container_name: n8n restart: unless-stopped ports: – “5678:5678” environment: – TZ=Asia/Shanghai – N8N_HOST=localhost – N8N_PORT=5678 – N8N_PROTOCOL=http volumes: – n8n_data:/home/node/.n8n volumes: n8n_data: |
9.2 Dify:搭建 AI 应用、RAG 与 Agent 平台
Dify 官方自托管部署通常采用 docker compose,包含 API、Web、Worker、数据库、Redis、向量库等多个服务。新手不建议手写完整 Compose 文件,优先使用官方仓库 docker 目录。
| # 典型流程:以官方文档为准 git clone https://github.com/langgenius/dify.git cd dify/docker cp .env.example .env docker compose up -d |
| Dify 提醒:Dify 服务较多,对内存、端口和数据库依赖更敏感。首次部署前先确认 80/443/3000/5001 等端口是否被占用,并认真阅读 .env 配置。 |
9.3 LocalAI:把开源模型变成本地 OpenAI 兼容 API
LocalAI 适合把本地模型封装成 OpenAI 兼容 API,便于 n8n、Dify、Continue、Open WebUI 或自研应用调用。
| services: localai: image: localai/localai:latest container_name: localai restart: unless-stopped ports: – “8080:8080” volumes: – ./models:/models environment: – DEBUG=true |
9.4 ComfyUI:AI 绘图工作流容器化思路
ComfyUI 的 Docker 部署通常依赖社区镜像或自建镜像。部署重点不是“能不能启动”,而是模型目录、插件目录、显卡驱动和 CUDA 版本是否匹配。
- 模型目录建议单独挂载,例如 ./models:/app/ComfyUI/models。
- 插件目录建议单独挂载,方便升级和排错。
- 显存不足时,优先降低分辨率、批量数和模型体积。
- 生产环境不要随意暴露 ComfyUI 到公网。
十、GPU 加速:NVIDIA 显卡怎么接入 Docker
AI 工具是否能用 GPU,取决于三层:宿主机显卡驱动是否正常、Docker 是否能识别 GPU、容器镜像是否带有适配的推理框架。
| # 1. 宿主机验证显卡 nvidia-smi # 2. Linux 安装并配置 NVIDIA Container Toolkit 后验证 Docker GPU sudo nvidia-ctk runtime configure –runtime=docker sudo systemctl restart docker # 3. 运行 CUDA 容器测试 GPU 是否可见 docker run –rm –gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi |
| 现象 | 处理思路 |
| nvidia-smi 能看到显卡,但容器看不到 | 通常是 NVIDIA Container Toolkit 未安装或 Docker runtime 未配置。 |
| 容器能看到 GPU,但模型仍跑 CPU | 检查镜像是否是 GPU 版本,启动参数是否启用 CUDA。 |
| Windows Docker GPU 异常 | 优先确认 WSL2、NVIDIA 驱动、Docker Desktop WSL 集成。 |
| 显存不足 | 换小模型、降低量化等级、减少上下文长度或并发数。 |
十一、数据卷、模型目录与备份
- 模型缓存要单独放:Ollama、ComfyUI、Dify、LocalAI 都可能占用几十 GB 到数百 GB。
- 数据库必须持久化:n8n、Dify、Open WebUI 的账号、工作流、知识库、配置都在数据卷里。
- 升级前先备份:尤其是 docker compose pull && docker compose up -d 之前。
- 不要把重要数据只放在容器内部:容器删除后,未挂载的数据可能直接丢失。
| # 查看 volume docker volume ls # 备份一个 volume 到当前目录 mkdir -p backups docker run –rm \ -v open-webui:/data \ -v $(pwd)/backups:/backup \ alpine tar czf /backup/open-webui-backup.tar.gz -C /data . # 恢复 volume 示例:先确认目标 volume 存在且服务已停止 docker run –rm \ -v open-webui:/data \ -v $(pwd)/backups:/backup \ alpine sh -c “cd /data && tar xzf /backup/open-webui-backup.tar.gz” |
十二、反向代理、HTTPS 与公网访问
个人本地测试时,localhost 或局域网 IP 已经足够。真正要公网访问时,至少要配置域名、HTTPS、登录账号、防火墙和反向代理。
| # Caddyfile 示例:把 ai.example.com 代理到本机 3000 端口 ai.example.com { reverse_proxy 127.0.0.1:3000 } |
- 不要把 Ollama 11434、LocalAI 8080、n8n 5678 直接裸露到公网。
- 启用强密码、管理员账号、二次验证或访问控制。
- API Key、数据库密码、Webhook Secret 不要写进公开仓库。
- 有条件时给 AI 服务单独开子域名,并限制后台管理入口。
- VPS 上建议只开放 80、443、SSH 必要端口,其余端口只允许内网访问。
十三、常见问题排查

| 报错 / 现象 | 解决方向 |
| docker: command not found | Docker 没装好,或终端 PATH 未刷新。重启终端,确认 Docker Desktop/Engine 正在运行。 |
| Cannot connect to the Docker daemon | Docker 服务未启动,Linux 上检查 systemctl status docker;Windows/Mac 检查 Docker Desktop 是否 running。 |
| port is already allocated | 端口被占用。把 compose 里的 3000:8080 改成 3001:8080 这类新端口。 |
| no space left on device | 镜像、模型或日志占满磁盘。清理 docker system df / prune,并把模型目录迁移到大盘。 |
| pull 镜像很慢 | 检查网络、Docker Hub 访问情况,或使用可信镜像加速服务。 |
| 容器反复重启 | 先 docker logs 容器名,看环境变量、权限、数据库连接、端口和配置文件。 |
| 网页打开但模型不可用 | 检查模型服务是否启动、容器网络名称是否写错、API 地址是否用容器名而不是 localhost。 |
| n8n Webhook 回调失败 | 公网部署时设置 WEBHOOK_URL;反向代理后检查协议、域名和端口。 |
十四、日常维护:升级、日志、重启、备份
| # 查看服务状态 docker compose ps # 查看实时日志 docker compose logs -f # 重启单个服务 docker compose restart open-webui # 更新镜像并重启 docker compose pull docker compose up -d # 查看磁盘占用 docker system df # 清理未使用镜像、容器和缓存:谨慎执行 docker system prune |
| 维护建议:AI 工具升级前先读 release notes,尤其是 Dify、n8n、Open WebUI 这类带数据库和账号体系的服务。先备份,再升级。 |
十五、FAQ:新手最常问的问题
Q:Docker 是不是必须装?
A:不是。很多 AI 工具也可以原生安装。但 Docker 能显著减少依赖冲突,尤其适合同时部署多个 AI 服务。
Q:Docker 会不会让 AI 运行变慢?
A:一般 Web 服务差异不大。模型推理速度主要受 CPU/GPU、显存、模型大小和框架影响。GPU 透传配置错误时才会明显变慢。
Q:没有显卡能不能部署 AI 工具?
A:可以。n8n、Dify、Open WebUI、部分小模型都能在 CPU 上运行,但大模型推理会慢,建议选择小参数或量化模型。
Q:Windows 用户应该把项目放在哪里?
A:推荐放在 WSL2 的 Linux 文件系统中,例如 /home/用户名/docker-ai-lab,避免 Windows 文件系统挂载导致 I/O 变慢。
Q:docker compose 和 docker-compose 有什么区别?
A:新版推荐 docker compose,它是 Docker CLI 的 Compose 插件;老教程中的 docker-compose 是旧命令形式。
Q:怎么让手机访问本地部署的 Open WebUI?
A:确保电脑和手机在同一局域网,使用电脑局域网 IP 加端口访问,例如 http://192.168.1.10:3000,并检查防火墙。
Q:能不能把这些服务放到公网?
A:可以,但不建议裸露端口。应使用域名、HTTPS、反向代理、强密码、防火墙和访问控制。
Q:升级后数据没了怎么办?
A:大概率是数据卷没挂载或换了 volume 名称。升级前务必备份 volume,并确认 Compose 文件中的 volumes 没变。
官方参考来源
- Docker Desktop on Windows:https://docs.docker.com/desktop/setup/install/windows-install/
- Docker Desktop on Mac:https://docs.docker.com/desktop/setup/install/mac-install/
- Docker Engine Install:https://docs.docker.com/engine/install/
- Docker Compose Install:https://docs.docker.com/compose/install/
- Docker Model Runner:https://docs.docker.com/ai/model-runner/
- NVIDIA Container Toolkit:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
- Ollama Docker Image:https://hub.docker.com/r/ollama/ollama
- Open WebUI Getting Started:https://docs.openwebui.com/getting-started/
- Dify Docker Compose:https://docs.dify.ai/en/self-host/quick-start/docker-compose
- n8n Docker Installation:https://docs.n8n.io/hosting/installation/docker/
- LocalAI Documentation:https://localai.io/docs/overview/index.html