用 Docker 部署 Ollama 跑大模型:从安装到拉取模型的完整步骤
想在服务器上跑本地大模型,用 Docker 部署 Ollama 是最省事的方式之一:不需要手动编译,也不用折腾 CUDA 驱动版本,一条 docker run 命令就能把服务跑起来。
下面按零基础也能照做的顺序,讲清楚准备条件、启动容器、拉取模型、验证接口和常见报错处理。
先确认服务器和环境够不够用
Ollama 通过 Docker 运行,对宿主机的要求主要有三点:
- 操作系统:主流 Linux 发行版即可,如 Ubuntu 20.04 及以上、Debian 11 及以上、CentOS 7 及以上。本文命令以 Ubuntu/Debian 为例,CentOS 把
apt换成yum即可。 - Docker 环境:已安装 Docker Engine,能正常执行
docker version。如果还没装,先按官方文档或系统包管理器安装。 - 硬件资源:纯 CPU 也能跑小参数模型,但速度较慢;有 NVIDIA 显卡时体验更好,需要额外安装 NVIDIA Container Toolkit 才能让容器使用 GPU。
先检查 Docker 是否可用:
docker version
能看到 Client 和 Server 两段版本信息,说明 Docker 正常。
如果提示 Cannot connect to the Docker daemon,先启动服务:
sudo systemctl start docker
sudo systemctl enable docker
启动 Ollama 容器并映射端口
Ollama 默认监听 11434 端口。
用官方镜像启动容器,并把模型数据目录挂载到宿主机,避免容器重建后模型丢失:
mkdir -p /data/ollama
docker run -d \
--name ollama \
-p 11434:11434 \
-v /data/ollama:/root/.ollama \
--restart unless-stopped \
ollama/ollama
参数说明:
-d:后台运行容器。--name ollama:给容器起固定名字,方便后续管理。-p 11434:11434:把宿主机端口映射到容器端口。-v /data/ollama:/root/.ollama:持久化模型文件,这一步很关键,不挂载的话删容器模型就没了。--restart unless-stopped:服务器重启后容器自动拉起。
如果服务器有 NVIDIA 显卡,并且已装好 NVIDIA Container Toolkit,启动时加上 --gpus all:
docker run -d \
--name ollama \
--gpus all \
-p 11434:11434 \
-v /data/ollama:/root/.ollama \
--restart unless-stopped \
ollama/ollama
启动后确认容器状态:
docker ps | grep ollama
状态显示 Up 即表示容器在运行。
拉取模型并测试对话
容器跑起来后,进入容器内部拉取模型。
以常见的小参数模型为例:
docker exec -it ollama ollama pull qwen2.5:0.5b
模型名称和标签以 Ollama 模型库实际提供的为准,拉取前可以先查一下可用标签。
下载完成后,直接运行一次对话测试:
docker exec -it ollama ollama run qwen2.5:0.5b
出现 >>> 提示符后输入一句话,例如“你好,请介绍一下你自己”,能返回中文回答就说明模型正常工作。
输入 /bye 退出。
如果希望通过 HTTP 接口调用,Ollama 自带 REST API,默认地址是 http://服务器IP:11434。
可以用 curl 验证:
curl http://127.0.0.1:11434/api/generate -d '{
"model": "qwen2.5:0.5b",
"prompt": "用一句话解释什么是Docker",
"stream": false
}'
返回 JSON 中包含 response 字段且内容正常,说明 API 可用。
容易踩坑的几个地方
- 端口不通:云服务器安全组或本机防火墙没放行
11434。本机可先curl 127.0.0.1:11434测试,通了再检查安全组规则。 - 模型下载慢或中断:模型文件较大,网络不稳定时重新执行
ollama pull会续传。也可以先确认磁盘空间:df -h /data。 - GPU 没被识别:容器内执行
nvidia-smi看不到显卡,通常是没装 NVIDIA Container Toolkit,或启动时漏了--gpus all。 - 容器反复重启:用
docker logs ollama看日志,常见原因是挂载目录权限不足或端口被占用。 - 不要随意删除挂载目录:
/data/ollama里存的是模型文件,删掉相当于重新下载。
验证部署是否真正可用
完成以上步骤后,按下面三项做最终检查:
docker ps中 ollama 容器状态为Up。docker exec -it ollama ollama list能看到已拉取的模型。- 用 curl 调用
/api/generate能返回正常文本。
三项都通过,说明 Ollama 的 Docker 部署已经可用。
之后可以根据服务器内存和显卡显存换用更大参数的模型,调整端口映射或加反向代理对外提供服务时,注意做好访问控制,避免接口直接暴露在公网被滥用。