拉取模型
0阅读
我来为您介绍如何使用 Docker 在本地运行 Ollama。这是一个非常实用的部署方式,可以让您快速搭建本地大语言模型服务。
使用 Docker 本地运行 Ollama
1. 基础运行命令
最简单的方式(CPU 运行):
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
带 GPU 支持(NVIDIA):
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
2. 参数说明
| 参数 | 说明 |
|---|---|
-d |
后台运行 |
-v ollama:/root/.ollama |
持久化模型数据(使用 Docker Volume) |
-p 11434:11434 |
映射端口,Ollama 默认端口 |
--gpus=all |
启用 NVIDIA GPU 支持 |
--name ollama |
容器名称 |
3. 常用操作命令
进入容器交互:
docker exec -it ollama ollama run llama3.2
在容器外执行命令:
docker exec -it ollama ollama pull llama3.2
# 查看已下载模型
docker exec -it ollama ollama list
# 运行模型进行对话
docker exec -it ollama ollama run llama3.2
查看日志:
docker logs -f ollama
4. 使用 Docker Compose(推荐)
创建 docker-compose.yml 文件:
version: '3.8'
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
# 如需 GPU,取消下面注释
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: all
# capabilities: [gpu]
volumes:
ollama_data:
然后运行:
docker-compose up -d
5. 验证安装
# 检查容器状态
docker ps | grep ollama
# 测试 API 是否可用
curl http://localhost:11434/api/tags
6. 推荐模型下载
| 模型 | 命令 | 适用场景 |
|---|---|---|
| Llama 3.2 | ollama pull llama3.2 |
通用对话,轻量级 |
| DeepSeek-R1 | ollama pull deepseek-r1 |
推理能力强 |
| Qwen 2.5 | ollama pull qwen2.5 |
中文支持好 |
| CodeGemma | ollama pull codegemma |
代码生成 |
7. 注意事项
- GPU 支持:需要提前安装 NVIDIA Container Toolkit
- 存储空间:模型文件较大(几GB到几十GB),确保有足够的磁盘空间
- 内存要求:运行大模型需要足够的内存/显存
8. 与外部应用集成
Ollama 运行后,可以通过以下方式调用:
# REST API 调用示例
curl -X POST http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "你好,请介绍一下自己"
}'
看起来是 Docker Hub 连接超时的问题,这在国内网络环境下很常见。以下是几种解决方案:
解决方案
方案一:配置国内 Docker 镜像源(推荐)
编辑或创建 Docker 配置文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
然后重新运行:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
方案二:使用代理(如果你有代理工具)
临时设置环境变量:
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
或在 Docker Desktop 设置中配置代理(Windows/Mac)。
方案三:手动下载镜像后导入
如果镜像源也不稳定,可以先在其他能访问 Docker Hub 的机器上下载,然后导出导入:
在有网络的机器上:
docker pull ollama/ollama
docker save ollama/ollama > ollama.tar
拷贝到你的机器后导入:
docker load < ollama.tar
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
方案四:使用阿里云镜像(如果可用)
有些阿里云镜像源可能还有效:
docker pull registry.cn-hangzhou.aliyuncs.com/ollama/ollama:latest
docker tag registry.cn-hangzhou.aliyuncs.com/ollama/ollama:latest ollama/ollama:latest
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
推荐先尝试方案一,配置国内镜像源后重启 Docker 服务,应该就能正常拉取镜像了。配置完成后可以用以下命令验证:
docker info | grep -A 10 "Registry Mirrors"
如果显示配置的镜像源地址,说明配置成功,再尝试运行 Ollama 容器。