使用 Docker 部署 Ollama:Docker Compose 一键运行 DeepSeek-R1 1.5B

最近本地大模型越来越好用,如果你不想在系统里安装一堆运行环境,使用 Docker 部署 Ollama 是一个非常省心的方案。
Ollama 本身提供了官方 Docker 镜像,我们只需要启动一个容器,就可以在本地运行 DeepSeek、Qwen、Llama 等各种开源模型。
这篇文章就从零开始介绍:
- 使用 Docker 安装 Ollama
- 使用 Docker Compose 管理 Ollama
- 下载并运行 DeepSeek-R1 1.5B
- 调用 Ollama API
- Docker 数据持久化
- NVIDIA GPU 加速
- macOS Apple Silicon 需要注意的问题
最终我们会得到这样一个结构:
Docker
│
└── Ollama
│
├── HTTP API :11434
│
└── DeepSeek-R1 1.5B
一、为什么使用 Docker 安装 Ollama?
Ollama 本身安装已经很简单了,但是如果是在服务器、开发环境或者需要重复部署,我还是比较推荐 Docker。
主要有几个优点:
环境隔离
↓
安装方便
↓
迁移方便
↓
升级方便
↓
数据可以持久化
例如以后迁移服务器,基本只需要:
docker compose up -d
整个 Ollama 服务就可以重新启动。
Ollama 官方本身也提供了:
ollama/ollama
Docker 镜像。官方目前给出的 CPU 运行方式同样是通过挂载 /root/.ollama 并暴露 11434 端口。
二、准备 Docker
首先确认电脑已经安装 Docker。
执行:
docker --version
例如:
Docker version 28.x.x
然后检查 Docker Compose:
docker compose version
注意,现在比较推荐:
docker compose
而不是以前的:
docker-compose
如果两个命令都能够正常执行,就可以继续了。
三、使用 Docker 安装 Ollama
最简单的方法只有一条命令:
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama:/root/.ollama \
--restart unless-stopped \
ollama/ollama
这里几个参数分别代表:
| 参数 | 作用 |
|---|---|
-d |
后台运行 |
--name ollama |
容器名称 |
-p 11434:11434 |
映射 Ollama API 端口 |
-v ollama:/root/.ollama |
持久化模型 |
--restart unless-stopped |
Docker 重启后自动启动 |
ollama/ollama |
Ollama 官方镜像 |
其中最重要的是:
-v ollama:/root/.ollama
因为我们后面下载的大模型都会保存到:
/root/.ollama
如果不做持久化,删除容器以后模型数据也可能一起丢失。
四、检查 Ollama 是否启动成功
执行:
docker ps
应该可以看到:
CONTAINER ID IMAGE PORTS
xxxxxxxx ollama/ollama 0.0.0.0:11434->11434/tcp
也可以直接访问 Ollama:
curl http://localhost:11434
如果返回类似:
Ollama is running
说明安装成功。
五、下载 DeepSeek-R1 1.5B
接下来我们安装一个非常小的 DeepSeek 模型:
DeepSeek-R1-Distill-Qwen-1.5B
在 Ollama 中对应:
deepseek-r1:1.5b
Ollama 官方模型库目前仍然提供这个模型,运行命令就是:
ollama run deepseek-r1:1.5b
官方提供的 Q4_K_M 版本模型文件大约只有 1.1 GB,实际参数量约 1.78B,非常适合作为 Ollama 入门测试模型。
因为 Ollama 现在运行在 Docker 里面,所以执行:
docker exec -it ollama ollama pull deepseek-r1:1.5b
开始下载。
下载完成以后,可以查看本地模型:
docker exec -it ollama ollama list
你应该可以看到类似:
NAME ID SIZE
deepseek-r1:1.5b xxxxxxxxxxxx 1.1 GB
六、运行 DeepSeek-R1 1.5B
直接执行:
docker exec -it ollama ollama run deepseek-r1:1.5b
然后输入:
你好,请介绍一下你自己。
DeepSeek 就会开始回答。
例如:
>>> 你好,请介绍一下你自己。
退出可以输入:
/bye
这样,我们实际上已经完成了:
Docker
↓
Ollama
↓
DeepSeek-R1 1.5B
↓
本地 AI
整个过程不需要配置 Python,也不需要安装 PyTorch、CUDA SDK 或者其他大模型运行框架。
七、使用 Docker Compose 安装 Ollama
如果只是测试,一条 docker run 命令就够了。
但如果准备长期使用,我更加推荐 Docker Compose。
新建目录:
mkdir ollama
cd ollama
创建:
compose.yml
写入:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
restart: unless-stopped
volumes:
ollama_data:
目录结构:
ollama/
└── compose.yml
然后启动:
docker compose up -d
查看运行状态:
docker compose ps
查看日志:
docker compose logs -f ollama
八、Docker Compose 下载 DeepSeek-R1
Ollama 启动以后执行:
docker compose exec ollama ollama pull deepseek-r1:1.5b
查看模型:
docker compose exec ollama ollama list
运行模型:
docker compose exec ollama ollama run deepseek-r1:1.5b
这样我们的 Ollama 环境就基本完成了。
九、让 Docker Compose 自动下载 DeepSeek
如果希望第一次启动的时候就自动准备 DeepSeek,还可以增加一个初始化容器。
例如:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
restart: unless-stopped
healthcheck:
test: ["CMD", "ollama", "list"]
interval: 10s
timeout: 5s
retries: 10
ollama-pull:
image: ollama/ollama:latest
depends_on:
ollama:
condition: service_healthy
environment:
OLLAMA_HOST: http://ollama:11434
entrypoint: /bin/sh
command:
- -c
- |
ollama pull deepseek-r1:1.5b
restart: "no"
volumes:
ollama_data:
然后:
docker compose up -d
第一次启动时:
启动 Ollama
↓
等待 Ollama Ready
↓
ollama-pull
↓
自动下载 deepseek-r1:1.5b
这样比较适合服务器初始化或者自动化部署。
十、通过 HTTP API 调用 DeepSeek
Ollama 最大的价值之一,其实不是命令行聊天,而是它提供了 API。
默认地址:
http://localhost:11434
例如:
curl http://localhost:11434/api/chat \
-d '{
"model": "deepseek-r1:1.5b",
"messages": [
{
"role": "user",
"content": "用简单的话解释一下什么是 Docker"
}
],
"stream": false
}'
模型就会返回结果。
Ollama 官方模型页面本身也提供 /api/chat 的调用示例。
十一、使用 generate API
也可以使用:
/api/generate
例如:
curl http://localhost:11434/api/generate \
-d '{
"model": "deepseek-r1:1.5b",
"prompt": "为什么天空是蓝色的?",
"stream": false
}'
返回大概类似:
{
"model": "deepseek-r1:1.5b",
"response": "天空呈现蓝色主要与瑞利散射有关……",
"done": true
}
这意味着你完全可以把 Ollama 当成一个本地 AI API Server。
十二、其他程序如何调用 Ollama?
现在整个架构其实就是:
┌─────────────────┐
│ DeepSeek R1 │
│ 1.5B │
└────────▲────────┘
│
┌────────┴────────┐
│ Ollama │
│ Docker │
└────────▲────────┘
│
:11434
│
┌──────────────────┼──────────────────┐
│ │ │
Python Node.js Java/Go
│ │ │
└──────────────────┴──────────────────┘
所以后面无论是:
- Python
- Java
- Go
- Node.js
- AI Agent
- VS Code 插件
- Web 项目
都可以连接这个 Ollama 服务。
十三、建议只监听本机端口
如果 Ollama 只准备自己电脑使用,我建议把:
ports:
- "11434:11434"
改成:
ports:
- "127.0.0.1:11434:11434"
Docker Compose:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "127.0.0.1:11434:11434"
volumes:
- ollama_data:/root/.ollama
restart: unless-stopped
volumes:
ollama_data:
这样 Ollama 只允许:
localhost
访问。
如果直接写:
11434:11434
Docker 默认可能会把端口发布到主机网络接口。
对于服务器环境尤其要注意,不建议毫无保护地把 Ollama API 直接暴露到公网。
十四、NVIDIA GPU 加速
如果是在 Linux + NVIDIA 显卡环境,可以让 Docker 中的 Ollama 使用 GPU。
首先需要安装:
NVIDIA Container Toolkit
然后配置 Docker Runtime。
官方给出的 NVIDIA 启动方式为:
docker run -d \
--gpus=all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama
Docker Compose 可以写成:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
restart: unless-stopped
volumes:
ollama_data:
启动:
docker compose up -d
然后可以检查模型到底运行在 CPU 还是 GPU:
docker exec -it ollama ollama ps
例如:
NAME PROCESSOR
deepseek-r1:1.5b 100% GPU
Ollama 官方文档说明,ollama ps 的 PROCESSOR 列可以判断模型是运行在 CPU、GPU,还是两者混合运行。
十五、Mac 用户特别注意
这里有一个非常容易踩的坑。
如果你使用的是:
MacBook
Mac mini
Mac Studio
Apple M1 / M2 / M3 / M4
虽然 Ollama 原生运行可以使用 Apple GPU,但是:
Docker Desktop for macOS 中运行 Ollama,目前不能直接使用 Apple GPU。
原因是 Docker Desktop 没有把 Apple GPU 直接透传给 Ollama Linux 容器。
官方 FAQ 明确说明,Docker Desktop on macOS 的 Ollama GPU acceleration 不可用;而 Ollama 原生 macOS 版本可以在 Apple Silicon 上使用 CPU 和 GPU。
所以如果你使用 Mac:
学 Docker 部署
可以使用:
Docker + Ollama
但是主要是 CPU 推理。
真正本地长期跑模型
更加推荐:
macOS
↓
原生 Ollama
↓
Metal
↓
Apple GPU
也就是说:
Mac 上为了性能,优先考虑原生 Ollama;服务器上为了部署方便,Docker Ollama 非常合适。
这个区别一定要搞清楚。
十六、常用 Docker Ollama 命令
最后整理几个经常会用到的命令。
查看容器
docker ps
查看日志
docker logs -f ollama
查看模型
docker exec -it ollama ollama list
下载模型
docker exec -it ollama ollama pull deepseek-r1:1.5b
运行模型
docker exec -it ollama ollama run deepseek-r1:1.5b
查看运行中的模型
docker exec -it ollama ollama ps
删除模型
docker exec -it ollama ollama rm deepseek-r1:1.5b
停止 Ollama
docker stop ollama
启动 Ollama
docker start ollama
Docker Compose 停止
docker compose down
Docker Compose 更新 Ollama
docker compose pull
docker compose up -d
模型存储在 Docker Volume 中,因此正常重新创建 Ollama 容器并不会要求重新下载所有模型。
十七、最终推荐的 compose.yml
如果只是想快速搭一个自己的本地 Ollama,我建议直接保存下面这个版本:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "127.0.0.1:11434:11434"
volumes:
- ollama_data:/root/.ollama
restart: unless-stopped
volumes:
ollama_data:
然后:
docker compose up -d
下载 DeepSeek:
docker compose exec ollama ollama pull deepseek-r1:1.5b
运行:
docker compose exec ollama ollama run deepseek-r1:1.5b
到这里,一个完全运行在自己机器上的 DeepSeek 就搭建完成了。
总结
Ollama 把本地运行大语言模型这件事情做得非常简单,而 Docker 又进一步解决了环境部署、迁移和管理的问题。
整个安装过程其实可以浓缩成三步:
docker compose up -d
然后:
docker compose exec ollama ollama pull deepseek-r1:1.5b
最后:
docker compose exec ollama ollama run deepseek-r1:1.5b
我们就拥有了:
Docker
+
Ollama
+
DeepSeek-R1 1.5B
+
localhost:11434 API
而且整个模型运行在自己的设备上。
对于第一次接触 Ollama 的人来说,deepseek-r1:1.5b 是一个非常合适的入门模型:模型文件大约 1.1GB,部署成本低,可以先把 Docker、Ollama、本地模型和 API 调用这一整套流程跑通,再逐渐尝试 7B、8B、14B、32B 等更大的模型。
如果你的目标不是单纯聊天,而是继续往 AI Agent、本地知识库、IDE 编程助手或者自己的 AI API 服务发展,那么这个 Docker Ollama 环境也可以直接作为后续所有实验的基础设施。
更多推荐


所有评论(0)