用Docker本地运行Ollama完整指南

📘 教程 2026-07-20 · 更新于 2026-09-27 约 5 分钟阅读

想在本地跑大模型,最省事的组合是 Docker 加 Ollama:一条命令起服务,模型和数据都落在卷里,换机器时把整个卷搬过去就能复用。这篇按「能跑通 → 跑得快 → 接进应用」的顺序走一遍,命令都可以直接复制。

💡 你将学到

想在本地跑大模型,最省事的组合是 Docker 加 Ollama:一条命令起服务,模型和数据都落在卷里,换机器时把整个卷搬过去就能复用。这篇按「能跑通 → 跑得快 → 接进应用」的顺序走一遍,命令都可以直接复制。

📜 目录

用Docker本地运行Ollama完整指南

想在本地跑大模型,最省事的组合是 Docker 加 Ollama:一条命令起服务,模型和数据都落在卷里,换机器时把整个卷搬过去就能复用。这篇按「能跑通 → 跑得快 → 接进应用」的顺序走一遍,命令都可以直接复制。

一、为什么用 Docker 跑 Ollama

代价是性能损耗。Linux 上通常是个位数百分比,社区实测在 1%~2% 区间;Mac 的情况不同,见第五节。

二、前置条件

项目 要求
容器运行时 Docker Engine 或 Docker Desktop
NVIDIA 显卡 已装驱动,Linux 上还需 NVIDIA Container Toolkit
磁盘 7B 模型约 4–5GB,14B 约 9GB
端口 11434 未被占用

三、三步跑起来

第一步,拉镜像并启动:

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

第二步,拉模型。进容器执行,避免再装一个宿主机客户端:

docker exec -it ollama ollama pull llama3.1:8b

第三步,验证接口:

curl http://localhost:11434/api/generate -d '{"model":"llama3.1:8b","prompt":"你好"}'

返回 JSON 就说明服务通了。Ollama 同时提供 OpenAI 兼容端点,/v1/chat/completions 能被现有 SDK 直接调用。

四、用上 GPU

NVIDIA 显卡加 --gpus all:

docker run -d --name ollama --gpus all -p 11434:11434 \
  -v ollama_data:/root/.ollama --restart unless-stopped ollama/ollama
docker exec -it ollama nvidia-smi   # 能看到显卡即生效

容器里看不到显卡,九成是宿主机缺 NVIDIA Container Toolkit,重装一遍并重启 Docker 就好。AMD 显卡要走 ROCm 专用镜像,标签以官方文档为准。

五、Mac 上要注意

Docker Desktop for Mac 不支持 GPU 直通,容器里的 Ollama 只能用 CPU,比原生安装慢很多。Mac 用户建议装原生版,端口同样是 11434,调用代码一行都不用改。

六、常用命令与参数

操作 命令或参数
看日志 docker logs -f ollama
列出模型 docker exec -it ollama ollama list
换模型目录 加 -e OLLAMA_MODELS=/models,卷挂到 /models
只监听本机 加 -e OLLAMA_HOST=127.0.0.1:11434
限制并发 加 -e OLLAMA_NUM_PARALLEL=2、-e OLLAMA_MAX_LOADED_MODELS=1

模型默认落在容器内 /root/.ollama/models,宿主机实际路径用 docker volume inspect ollama_data 查,备份时整个目录打包即可。

七、升级与接入界面

把命令改写成 compose.yaml 更好维护:容器参数写进 services.ollama,需要 GPU 就加 deploy.resources.reservations.devices 段,之后 docker compose up -d 起服务,docker compose pull && docker compose up -d 升级,参数与命令行一一对应。

要一个聊天界面,最常见的搭配是 Open WebUI:

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

打开 http://localhost:3000 就能对话。要用在自己的代码里,base_url 填 http://localhost:11434/v1,api_key 随便给一个非空字符串即可,本地服务不校验。

常见问题

Q:容器里下的模型,宿主机原生的 Ollama 能用吗? 可以。两边默认都读 ~/.ollama,把卷目录映射到宿主机同一路径就能共用,省一份空间。

Q:第一次调用为什么特别慢? 模型要加载进显存或内存,冷启动几秒到几十秒属正常,之后常驻就稳定了。

Q:把 11434 暴露到公网安全吗? 不安全。Ollama 默认没有鉴权,能连上端口就能随意调用。要么只监听 127.0.0.1,要么前面加一层带认证的反向代理。

注:镜像标签、GPU 支持范围和启动参数会随版本变化,具体以官方文档为准。

相关文章

相关文章
2026-07-19
AI工作流自动化:n8n+LLM从需求到上线
2026-07-16
AI Agent实时通信:WebSocket还是SSE?别再纠结了
2026-08-05
2026年学生AI编程助手:Cline(6.6万星)对比 Continue(3.5万星),真正能教你的免费工具
2026-07-22
2026年大模型上下文窗口对比
2026-07-19
AI Agent SLA设计:保证服务质量的几个关键指标
2026-08-14
科研论文 AI 图表生成器 2026:能扛住同行评审的图表

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论