本教程适用于:已经安装好 Docker Desktop for Mac 的用户。如果你还没装 Docker,本教程也会给出安装步骤。
一、前置条件检查
1. 检查 macOS 版本
在「终端」中执行:
bash
sw_vers
确认:
- ProductName: macOS
- ProductVersion: 建议 12 (Monterey) 及以上
2. 检查是否已安装 Docker
bash
docker --version
- 如果能看到类似
Docker version 27.x.x,说明已安装; - 如果提示
command not found,请先安装 Docker Desktop。
3. 安装 / 升级 Docker Desktop(如有需要)
- 打开浏览器访问 Docker 官网:
- 访问
https://www.docker.com/products/docker-desktop/
- 访问
- 下载 Mac 版本 (Apple Silicon 或 Intel 对应选择) 的安装包(.dmg)。
- 双击下载的
.dmg文件,将 Docker 图标拖动到Applications(应用程序)中。 - 从「启动台」中打开 Docker Desktop ,首次启动可能会提示授权,按提示点击 OK 或 允许。
- 右上角状态栏出现 Docker 小鲸鱼图标后,等待其变成 Docker is running 状态。
建议 :在第一次使用前,打开 Docker Desktop →
Settings→Resources,确保:
- CPU 至少分配 4 核
- 内存至少分配 8 GB(如果你要跑大模型可以给到 16 GB 或更高)
二、使用 Docker 运行 Ollama 的基本思路
Ollama 官方提供了 Docker 镜像,我们在 macOS 上的步骤大致是:
- 拉取(或直接运行) Ollama 的 Docker 镜像;
- 使用
-v挂载本地目录用来保存模型数据(防止容器删了模型也没了); - 暴露容器端口,让本机或其他应用可以通过 HTTP 访问 Ollama API;
- 在容器中拉取所需模型(如
qwen2.5:7b、llama3等); - 可选:设置开机自启或使用 docker compose 管理。
三、拉起 Ollama 容器(推荐命令)
1. 创建本地数据目录
建议在你的用户目录下创建一个专门目录保存 Ollama 模型数据:
bash
mkdir -p ~/ollama/ollama-data
2. 运行 Ollama 容器(一次性命令)
在终端中执行下面这个命令(Apple Silicon / Intel 通用):
bash
docker run -d \
--name ollama \
--platform linux/arm64 \
--restart unless-stopped \
-p 11434:11434 \
-v ~/ollama/ollama-data:/root/.ollama \
-e OLLAMA_HOST=0.0.0.0 \
-e OLLAMA_NUM_PARALLEL=4 \
-e OLLAMA_KEEP_ALIVE=24h \
-e OLLAMA_MMAP=true \
--cpus="5" \
--memory="12g" \
--memory-swap="18g" \
ollama/ollama:latest
参数说明:
- -d: 后台运行容器
- --name ollama : 容器名称为
ollama,方便后续管理 - --restart unless-stopped: 开机自动启动容器,除非你手动停止
- -p 11434:11434: 将容器的 11434 端口映射到本机相同端口
- -v ~/ollama/ollama-data:/root/.ollama: 将本机目录挂载为容器中的模型存储目录
- ollama/ollama:latest: 使用官方最新 Ollama Docker 镜像
如需指定架构或版本,可以将
ollama/ollama:latest替换为具体 tag,例如:ollama/ollama:0.4.0。
3. 确认容器是否运行成功
bash
docker ps
确认输出中有一行类似:
text
CONTAINER ID IMAGE COMMAND ... NAMES
xxxxxx ollama/ollama:latest ... ... ollama
如果未启动成功,可用下面命令查看日志:
bash
docker logs -f ollama
四、在容器中拉取模型并测试
1. 进入容器的 shell
bash
docker exec -it ollama bash
进入容器后,命令行前缀会变成类似:
text
root@<container_id>:/#
2. 在容器里拉取模型
以 Qwen 系列模型为例:
bash
ollama pull qwen2.5:7b
如果你想用其他模型:
- 拉取 Llama 3:
bash
ollama pull llama3
- 拉取 Qwen 1.5 7B:
bash
ollama pull qwen:7b
模型会下载到
/root/.ollama,因为做了数据卷映射,所以实际被保存到你本机的~/ollama/ollama-data中,下次重启不会重新下载。
3. 在容器里直接对话测试
拉取完模型之后,在容器 shell 中执行:
bash
ollama run qwen2.5:7b
第一次运行会加载模型,稍等片刻,然后你会看到一个交互式对话界面:
text
>>> 你好
可以简单测试:
text
>>> 用一句话自我介绍
输入 Ctrl + C 退出对话,再输入 exit 退出容器 shell。
五、在 mac 上通过 HTTP API 调用 Ollama
只要 Docker 容器在运行,你的 Mac 就可以通过 http://localhost:11434 调用 Ollama 的 API。
1. 用 curl 直接测试
在 宿主机 mac 终端(不是容器里)执行:
bash
curl http://localhost:11434/api/generate \
-d '{
"model": "qwen2.5:7b",
"prompt": "用中文简要介绍一下你是谁",
"stream": false
}'
如果配置正确,你会收到一段 JSON 输出,其中 response 字段就是模型的回答。
2. 用 Python 调用示例
在 mac 上可以新建一个 test_ollama.py:
python
import requests
url = "http://localhost:11434/api/generate"
data = {
"model": "qwen2.5:7b",
"prompt": "用中文解释一下大语言模型是什么",
"stream": False,
}
resp = requests.post(url, json=data)
resp.raise_for_status()
print(resp.json()["response"])
运行:
bash
python3 test_ollama.py
若能正常输出中文回答,说明 Docker 里的 Ollama 已经可以通过 HTTP 正常调用。
六、常用管理命令(Docker 版本 Ollama)
1. 停止 Ollama 容器
bash
docker stop ollama
2. 再次启动 Ollama 容器
bash
docker start ollama
3. 查看容器日志
bash
docker logs -f ollama
4. 删除容器(不会删模型数据,因为模型在挂载卷里)
bash
docker rm -f ollama
如需完全清理模型数据,再删除本地数据目录:
bash
rm -rf ~/ollama/ollama-data
七、使用 docker compose(可选,推荐)
如果你希望管理更方便,可以使用 docker-compose:
- 在某个工作目录下新建
docker-compose.yml:
yaml
version: "3.9"
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ~/ollama/ollama-data:/root/.ollama
restart: unless-stopped
- 在该目录中执行:
bash
docker compose up -d
- 常用管理命令:
bash
# 停止
docker compose down
# 查看日志
docker compose logs -f
# 重启
docker compose restart
八、常见问题排查
-
问题 1:
docker: command not found- 原因:未安装 Docker 或未添加到 PATH
- 解决:安装 Docker Desktop,并重启终端
-
问题 2:
Cannot connect to the Docker daemon- 原因:Docker Desktop 未启动或启动失败
- 解决:
- 确认右上角是否有小鲸鱼图标
- 打开 Docker Desktop,等待状态变为
Running
-
问题 3:
port 11434 is already allocated- 原因:端口 11434 已被其他进程或容器占用
- 解决:
- 查看占用该端口的容器:
docker ps | grep 11434 - 停止冲突容器或修改映射端口,例如使用
-p 11435:11434
- 查看占用该端口的容器:
-
问题 4:模型下载过慢或失败
- 尝试:
- 使用稳定的网络环境或代理
- 重新执行
ollama pull 模型名
- 尝试:
以上步骤在一台普通 mac(Docker Desktop 已安装)上即可完整复现:
- 启动 Docker Desktop;
- 运行
docker run ...命令拉起 Ollama 容器; - 在容器中
ollama pull需要的模型; - 在 mac 上通过
curl或 Python 访问http://localhost:11434/api/generate完成调用。
如果你希望,我可以再帮你在本项目里加一个 Python/Notebook 示例,直接调用 Docker 里的 Ollama。