Ollama 版本升级实操:从检查到回滚的完整流程
Ollama 版本升级的核心操作分两种情况:Linux 裸机安装用官方脚本覆盖安装,Docker 部署则拉取新镜像重建容器。
升级前先确认当前版本和模型依赖,升级后必须验证服务状态和模型加载是否正常,避免直接在生产环境操作。
升级前先确认三件事
升级不是单纯执行一条命令,先花几分钟检查环境,能避开大部分兼容性问题。
- 查看当前版本:
ollama --version,记录输出中的版本号。 - 确认模型列表:
ollama list,记下正在使用的模型名称和大小。 - 检查服务运行方式:
systemctl status ollama如果是active (running)说明由 systemd 管理;如果看到 Docker 容器名,则属于容器部署。
另外,如果模型目录下有自定义的 Modelfile,建议先备份到其他路径,例如 cp -r ~/.ollama/models /data/backup/ollama-models-$(date +%F)。
升级通常不影响模型文件,但备份能防止意外。
Linux 裸机升级步骤
适用于通过官方脚本安装、由 systemd 管理服务的环境。
- 停止当前服务:
sudo systemctl stop ollama。 - 执行官方安装脚本覆盖旧版本:
curl -fsSL https://ollama.com/install.sh | sh。脚本会自动下载最新稳定版并替换二进制文件,过程中会重新配置 systemd 服务。 - 重新加载服务配置:
sudo systemctl daemon-reload。 - 启动服务:
sudo systemctl start ollama。 - 验证版本:
ollama --version,输出应显示新版本号。 - 测试模型加载:
ollama run 模型名,例如ollama run llama3.2,能正常进入对话提示符即表示升级成功。
如果升级后服务启动失败,用 journalctl -u ollama -n 50 --no-pager 查看最近日志,常见原因是端口被占用或模型目录权限变化。
Docker 部署的升级方式
容器环境不要直接进入容器内升级,正确做法是拉取新镜像并重建容器。
- 记录当前容器启动参数:
docker inspect ollama --format '{{json .HostConfig.PortBindings}}',确认端口映射和挂载目录。 - 停止并删除旧容器:
docker stop ollama && docker rm ollama。模型数据通常挂载在宿主机目录,删除容器不会丢失。 - 拉取最新镜像:
docker pull ollama/ollama:latest。 - 用原参数重新创建容器,例如:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
如果没有 GPU,去掉 --gpus=all 即可。
- 验证容器状态:
docker ps | grep ollama,状态应为Up。 - 进入容器检查版本:
docker exec -it ollama ollama --version。
注意:如果之前使用 docker-compose.yml 管理,直接修改镜像标签后执行 docker compose up -d 即可,不要手动删容器。
升级后必须做的验证
版本号变化不代表一切正常,至少完成以下三项检查:
- 接口可用性:
curl http://localhost:11434/api/tags应返回模型列表 JSON,而不是连接拒绝。 - 模型推理测试:用
ollama run 模型名 "你好"发一条短消息,确认能返回内容。 - 资源占用观察:
docker stats或top查看内存和 GPU 占用是否在正常范围,避免新版本默认参数变化导致资源吃紧。
如果接口返回 404 或模型列表为空,先检查模型目录是否正确挂载,再确认服务监听地址是否为 0.0.0.0:11434。
常见报错与避坑说明
ollama: command not found:安装脚本未将二进制放到 PATH,检查/usr/local/bin/ollama是否存在,或重新登录终端。- 端口 11434 被占用:用
ss -tlnp | grep 11434找到占用进程,停止旧进程后再启动服务。 - 模型加载报错
unexpected EOF:通常是模型文件下载不完整,执行ollama rm 模型名后重新ollama pull。 - 升级后 GPU 不可用:Docker 部署需确认 NVIDIA Container Toolkit 正常,运行
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi测试。 - 不要跳过备份:虽然模型文件一般不受影响,但自定义配置和 Modelfile 建议单独保存,回滚时能省时间。
回滚方法:Linux 环境重新执行旧版本安装脚本或从备份恢复二进制;
Docker 环境将镜像标签改为原版本号后重建容器。
回滚前同样先停止服务。
几个常见疑问
升级 Ollama 会删除已有模型吗?
正常覆盖安装和重建容器不会删除模型文件,模型默认存放在 ~/.ollama/models 或挂载卷中。
但如果你手动清理过目录或更换了挂载路径,需要提前迁移。
必须升级到最新版吗?
不一定。
如果当前版本稳定且满足模型运行需求,不必频繁升级。
遇到新模型支持或安全修复时再升级更稳妥。
升级后需要重新拉取模型吗?
通常不需要,模型文件与程序版本独立。
但极少数情况下模型格式不兼容,此时重新 ollama pull 即可。
整个升级过程的关键是:先确认部署方式,再选择对应命令,最后用接口和推理测试验证结果。
按这个顺序操作,大模型 Ollama 版本升级的风险可控,出问题也能快速回滚。