当前位置: 首页 > article >正文

Docker 部署 Ollama 实战指南:从镜像拉取到 API 调用的全流程解析

1. 为什么选择 Docker 部署 Ollama在开始之前我们先聊聊为什么要把 Ollama 装进 Docker。我刚开始接触大语言模型时最头疼的就是环境配置问题。不同模型需要不同版本的依赖库系统里各种 Python 环境经常打架。直到用了 Docker这些问题才真正解决。Docker 就像给你的应用准备了一个随身行李箱。想象你要去旅行与其每到一个酒店都重新买洗漱用品不如把所有必需品装进行李箱带着走。Ollama 在 Docker 里运行就是这个道理 - 所有依赖项都打包好了换个机器也能一键运行完全不用担心环境冲突。实测下来Docker 部署还有几个实在的好处隔离性模型运行不会干扰主机环境便携性开发机训练好的模型可以直接搬到生产环境资源控制能限制 CPU/内存用量避免模型吃光系统资源版本管理可以保存不同版本的镜像随时回滚2. 环境准备Docker 安装与配置2.1 安装 Docker 引擎先确认你的系统是否已经安装了 Docker。打开终端输入docker --version如果看到版本号比如Docker version 24.0.7说明已经安装。如果没有按下面步骤操作Ubuntu/Debian 系统# 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt-get update sudo apt-get install ca-certificates curl gnupg # 添加官方GPG密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg # 设置仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release echo $VERSION_CODENAME) stable | \ sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginCentOS/RHEL 系统sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl start docker安装完成后建议把当前用户加入 docker 组避免每次都要 sudosudo usermod -aG docker $USER newgrp docker # 立即生效2.2 配置 Docker 镜像加速国内拉取镜像可能会很慢建议配置镜像加速器。创建或修改/etc/docker/daemon.json{ registry-mirrors: [ https://registry.cn-hangzhou.aliyuncs.com, https://docker.mirrors.ustc.edu.cn ] }然后重启服务sudo systemctl daemon-reload sudo systemctl restart docker3. 获取 Ollama 镜像3.1 官方镜像拉取Ollama 官方提供了现成的 Docker 镜像直接拉取即可docker pull ollama/ollama这个命令会从 Docker Hub 下载最新版本的镜像。我实测下载速度大约 2MB/s完整镜像大小约 1.2GB。如果下载速度不理想可以尝试以下方法更换 Docker 镜像源见 2.2 节使用离线下载方式见 3.2 节3.2 离线镜像方案对于网络环境受限的情况可以使用离线镜像包。这里提供一个实测可用的方案下载离线镜像包约 3GB导入本地 Dockerdocker load ollama-offline.tar导入后可以用以下命令查看docker images | grep ollama应该能看到类似输出ollama/ollama latest 1a2b3c4d5e6f 2 weeks ago 1.21GB4. 运行 Ollama 容器4.1 基础运行命令启动容器的标准命令如下docker run -d \ --name ollama \ -p 11434:11434 \ -v ollama_data:/root/.ollama \ --restart always \ ollama/ollama参数解释-d后台运行--name指定容器名称-p端口映射主机端口:容器端口-v数据卷挂载持久化模型数据--restart自动重启策略4.2 GPU 加速配置如果你有 NVIDIA 显卡可以启用 GPU 加速先安装 NVIDIA Container Toolkitdistribution$(. /etc/os-release;echo $ID$VERSION_ID) \ curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add - \ curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker运行容器时添加 GPU 参数docker run -d \ --name ollama \ --gpus all \ -p 11434:11434 \ -v ollama_data:/root/.ollama \ --restart always \ ollama/ollama可以用以下命令检查 GPU 是否生效docker exec ollama nvidia-smi5. 模型管理与使用5.1 拉取模型进入容器操作docker exec -it ollama bash在容器内拉取模型以 llama3 为例ollama pull llama3这个命令会下载约 4GB 的模型文件。下载进度可以在终端看到速度取决于你的网络。5.2 运行模型拉取完成后直接运行ollama run llama3你会进入交互模式可以直接输入问题与模型对话。试试输入 用简单的话解释 Docker 是什么模型会返回类似这样的回答Docker 就像是一个标准化的集装箱系统但装的是软件而不是货物。它把应用程序和它需要的所有东西代码、运行环境、工具等打包在一起这样就能在任何支持Docker的电脑上运行不会因为环境不同而出问题。5.3 模型管理常用命令查看已安装模型ollama list删除模型ollama rm 模型名创建自定义模型ollama create 模型名 -f Modelfile6. API 调用实战6.1 基础 API 调用Ollama 提供了 RESTful API可以通过 HTTP 访问。最基本的生成接口curl http://localhost:11434/api/generate -d { model: llama3, prompt: 为什么天空是蓝色的, stream: false }参数说明model使用的模型名称prompt输入的提示词stream是否流式输出6.2 高级 API 使用对话模式curl http://localhost:11434/api/chat -d { model: llama3, messages: [ {role: user, content: 你好}, {role: assistant, content: 你好有什么我可以帮助你的吗}, {role: user, content: 请用简单的语言解释AI是什么} ] }嵌入向量生成curl http://localhost:11434/api/embeddings -d { model: llama3, prompt: 机器学习的基本概念 }6.3 Python 客户端示例安装官方 Python 客户端pip install ollama示例代码import ollama response ollama.generate( modelllama3, prompt用三句话解释神经网络, streamFalse ) print(response[response])流式输出示例stream ollama.generate( modelllama3, prompt写一篇关于Docker的短文, streamTrue ) for chunk in stream: print(chunk[response], end, flushTrue)7. 常见问题排查7.1 端口冲突问题如果 11434 端口被占用可以修改映射端口docker run -d -p 11435:11434 --name ollama ollama/ollama然后 API 地址改为http://localhost:114357.2 模型下载失败如果模型下载中途失败可以尝试清理缓存docker exec ollama rm -rf /root/.ollama/models重新拉取ollama pull 模型名7.3 内存不足问题大模型需要足够内存如果遇到崩溃检查可用内存free -h运行容器时限制内存docker run -d --memory16g --name ollama ollama/ollama8. 生产环境建议8.1 安全配置修改默认端口设置 API 密钥验证启用 HTTPS配置防火墙规则8.2 性能优化使用 SSD 存储为数据卷挂载单独的高性能磁盘调整 Docker 的 CPU 和内存限制定期清理无用镜像和容器8.3 监控与日志查看容器日志docker logs -f ollama资源监控docker stats ollama设置日志轮转docker run -d \ --log-driver json-file \ --log-opt max-size10m \ --log-opt max-file3 \ --name ollama \ ollama/ollama

相关文章:

Docker 部署 Ollama 实战指南:从镜像拉取到 API 调用的全流程解析

1. 为什么选择 Docker 部署 Ollama? 在开始之前,我们先聊聊为什么要把 Ollama 装进 Docker。我刚开始接触大语言模型时,最头疼的就是环境配置问题。不同模型需要不同版本的依赖库,系统里各种 Python 环境经常打架。直到用了 Docke…...

模型介导钓鱼:AI 助手被诱导生成钓鱼内容的机理与防御

摘要 随着 Microsoft 365 Copilot、Google Gemini for Workspace 等 AI 助手在企业办公场景的深度普及,一类依托提示注入实现的模型介导钓鱼(Model-Mediated Phishing) 攻击快速兴起。攻击者通过在正常邮件中嵌入低可见性恶意指令&#xff0c…...

新手必看!5款热门单片机选型指南(51、STM32、PIC、AVR、MSP430)

新手工程师必读:5大单片机选型实战指南(51/STM32/PIC/AVR/MSP430) 第一次打开单片机选型手册时,密密麻麻的参数表就像天书——时钟频率、Flash容量、ADC精度这些术语在眼前跳动,而老板给的采购预算表上的数字又让人手…...

Paimon数据湖实战:Merge Engines深度解析与应用场景

1. Paimon数据湖中的Merge Engines核心机制 第一次接触Paimon的Merge Engines时,我完全被它强大的数据合并能力震撼到了。这就像是一个智能的数据管家,能够根据不同的业务需求,自动帮你处理各种复杂的数据合并场景。在实际项目中,…...

人工智能应用- 走向未来:02.人工智能研究方向

随着技术的发展,以深度神经网络为代表的人工智能技术在取得突破的同时,也逐渐暴露出一些基础性问题。这些问题促使科学家们思考人工智能的下一步发展。本节将从几个关键方面,探讨当前人工智能的重要研究方向。可解释性与可控性首先&#xff0…...

Anlogic FD工具深度体验:如何用eMCU软核实现SF1芯片的PSRAM控制器设计

Anlogic FD工具实战:基于eMCU软核的PSRAM控制器设计进阶指南 当FPGA工程师需要在资源受限的SF1芯片上实现高性能存储控制时,Anlogic Future Dynasty(FD)工具链中的eMCU软核与PSRAM控制器组合提供了绝佳的解决方案。不同于基础教程…...

5分钟解决PDF转Markdown痛点:Marker工具全场景应用指南

5分钟解决PDF转Markdown痛点:Marker工具全场景应用指南 【免费下载链接】marker 一个高效、准确的工具,能够将 PDF 和图像快速转换为 Markdown、JSON 和 HTML 格式,支持多语言和复杂布局处理,可选集成 LLM 提升精度,适…...

从零解析:富斯i6遥控器与STM32的IBUS协议通信实战

1. 为什么选择富斯i6遥控器与STM32通信 对于很多刚接触机器人或者智能小车开发的爱好者来说,无线控制模块的选择往往是个头疼的问题。市面上常见的方案要么价格昂贵,要么配置复杂,而富斯i6遥控器配合iA6B接收机恰好提供了一个低成本、高可靠性…...

2025年具身智能创业指南:从芯片选型到场景落地的完整避坑手册

2025年具身智能创业指南:从芯片选型到场景落地的完整避坑手册 当波士顿动力的Atlas机器人完成一套流畅的后空翻动作时,全世界都意识到——具身智能的时代已经到来。2025年的今天,具身智能正从实验室走向产业化,创业者们面临的不再…...

.NET校招真实面经:手写代码、项目深挖、算法到底考什么

文章目录写在前面:校招面试就像相亲,你得先过了"眼缘"这一关第一部分:手写代码——别做"嘴强王者",要做"手速达人"1.1 面试官为啥非要你手写代码?1.2 .NET校招手写代码到底考啥&#xf…...

DataWorks与PyODPS实战:MaxCompute数据处理高效技巧

1. 初识DataWorks与PyODPS:大数据处理的黄金搭档 第一次接触DataWorks和PyODPS时,我就像发现了一个新大陆。DataWorks作为阿里云的一站式大数据开发平台,而PyODPS则是连接Python和MaxCompute的桥梁,这个组合让大数据处理变得前所…...

OpenClaw+GLM-4.7-Flash:智能客服机器人搭建指南

OpenClawGLM-4.7-Flash:智能客服机器人搭建指南 1. 为什么选择这个技术组合? 去年夏天,我接手了一个小团队的客服系统改造项目。团队只有5个人,却要处理日均300的客户咨询。传统客服系统要么太贵,要么定制化程度不够…...

OpenHarmony标准系统选Linux内核,为啥首选LTS版本?聊聊4.19、5.10和6.6的适配实战

OpenHarmony标准系统选Linux内核:LTS版本决策逻辑与实战适配指南 当OpenHarmony标准系统遇上Linux内核选型,技术决策者们往往面临一个关键抉择:是追求前沿特性拥抱最新稳定版,还是坚守长期支持(LTS)版本的稳…...

Transformer横空出世!解决NLP难题,引爆AI革命!

Transformer模型自2017年推出以来,已成为人工智能领域最具影响力的创新之一。本文深入探讨了Transformer的基本原理、出现背景及其精巧的架构设计。Transformer通过自注意力机制,成功克服了RNN在处理长序列数据时的长距离依赖和并行计算瓶颈,…...

思源宋体:免费商用中文字体的全面应用指南

思源宋体:免费商用中文字体的全面应用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在数字设计领域,字体如同视觉沟通的语言。Source Han Serif TTF&…...

保姆级教程:在Mac/Linux上为RuoYi项目永久修复SQL Server的SSL连接问题

保姆级教程:在Mac/Linux上为RuoYi项目永久修复SQL Server的SSL连接问题 当你在Mac或Linux系统上使用RuoYi框架连接SQL Server数据库时,可能会遇到令人头疼的SSL协议错误。这些错误通常表现为连接池初始化失败或安全连接无法建立,核心问题往往…...

51单片机外部中断实战:电平与边沿触发的按键检测优化方案

1. 51单片机外部中断基础入门 第一次接触51单片机外部中断时,我完全被那些专业术语搞晕了。什么电平触发、边沿触发,听起来就像天书一样。但实际用起来才发现,这其实是单片机最实用的功能之一。想象一下,你正在用单片机做一个智能…...

避坑指南:TDengine开源版taosdump备份恢复,这些性能问题和‘缺口’你得知道

TDengine开源版备份恢复实战:taosdump性能瓶颈与数据缺口深度解析 1. 当开源版遇上生产环境:taosdump的真实表现 去年夏天,我们团队在新能源监控项目中首次尝试用TDengine开源版构建时序数据库集群。当系统运行三个月后,客户突然…...

S32的进阶之路->7,S32DS中FTM中断与PWM结合的实战应用

1. FTM中断与PWM结合的应用场景 在嵌入式开发中,定时器和PWM(脉冲宽度调制)是最常用的外设功能之一。S32K144芯片的FTM(FlexTimer Module)模块提供了强大的定时和PWM生成能力,而将它们与中断结合使用&#…...

Canvas Quest商业人像生成应用:电商模特图低成本自动化生产方案

Canvas Quest商业人像生成应用:电商模特图低成本自动化生产方案 1. 电商模特图的痛点与机遇 电商行业有个公开的秘密:商品展示图的拍摄成本往往比商品本身还高。特别是服装、配饰和美妆类目,每季新品需要拍摄上百套模特图,传统方…...

打造高效AI训练与推理服务器:2025年硬件配置与QLoRA实战指南

1. 2025年AI服务器硬件配置指南 组装一台兼顾训练和推理的AI服务器,核心在于平衡显存容量、内存带宽和计算吞吐量。2025年的硬件市场已经趋于成熟,二手显卡性价比尤为突出。我实测过多种配置组合,发现双RTX 3090的方案在微调7B-14B参数模型时…...

Bili2Text:B站视频转文字的智能革命

Bili2Text:B站视频转文字的智能革命 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 副标题:还在为视频笔记熬夜?这款工具让…...

5个痛点解决:ComfyUI-KJNodes让工作流效率提升60%的实战指南

5个痛点解决:ComfyUI-KJNodes让工作流效率提升60%的实战指南 【免费下载链接】ComfyUI-KJNodes Various custom nodes for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-KJNodes ComfyUI-KJNodes是一套功能强大的ComfyUI自定义节点集合&…...

无刷电机S型与梯形加减速曲线实战:从算法到代码的平滑运动实现

1. 无刷电机加减速控制的核心价值 第一次调试无刷电机时,我盯着那个疯狂抖动的机械臂陷入了沉思——原来不加控制的电机就像脱缰的野马,根本没法用在精密设备上。后来才明白,加减速曲线就是驯服这匹野马的缰绳。无论是工厂里的机械臂&#x…...

别再死磕点云了!用DeepSDF和PyTorch实现高质量3D模型补全(附代码)

突破传统3D补全瓶颈:基于DeepSDF的智能修复实战指南 当你面对残缺的3D扫描数据时,是否厌倦了传统点云方法带来的锯齿状表面和模糊细节?在文物数字化修复或游戏资产重建中,我们常常遇到这样的困境:珍贵的雕塑缺失了关键…...

解密SWAT模型中的土壤水分特性:如何用SPAW快速计算AWC与饱和导水率?

土壤水分特性在SWAT模型中的关键作用与SPAW实战指南 土壤水分参数对水文模拟的影响机制 在分布式水文建模领域,土壤水分特性参数犹如隐藏在水循环方程式中的密码钥匙。这些看似简单的数值背后,实则决定着水分在土壤剖面中的运移轨迹、植物根系的吸水效率…...

手把手教你微调MONAI Bundle预训练模型:用TotalSegmentator数据提升CT器官分割精度

深度定制化医学影像分割:基于MONAI Bundle的TotalSegmentator数据微调实战 医学影像分析领域正经历着从通用模型到专用模型的范式转变。当我在去年参与一个肝脏肿瘤分割项目时,深刻体会到预训练模型在特定数据集上表现不佳的困境——不同医院的CT扫描协议…...

别再让输入框‘抢焦点’了!手把手封装一个Vue扫码枪工具类SCAN,解决页面刷新监听丢失

从零构建高可靠Vue扫码枪工具库:SCAN类深度封装与工程化实践 扫码枪在零售、仓储、医疗等行业的Web系统中应用广泛,但传统实现强依赖输入框焦点,用户体验差且稳定性低。本文将带你从底层原理出发,完整封装一个无需输入框聚焦、支持…...

告别无效Agent工程!掌握这3大核心,让你的AI助手效率飙升10倍!

最近 X 上有篇文章很火,叫《How To Be A World-Class Agentic Engineer》,作者是个深度的 Agent 工程实践者。 文章开头是这样描述的:你用着 Claude Code,每天琢磨自己是不是把它的能力榨干了。偶尔看到它干出极其弱智的事情&…...

Python异步服务部署与无服务器架构实践指南

Python异步服务部署与无服务器架构实践指南 【免费下载链接】uvicorn An ASGI web server, for Python. 🦄 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn 在云原生应用开发领域,Python异步服务部署正成为构建高性能后端系统的首选方…...