使用Docker部署ollama和MaxKB全过程
步骤1:配置Ollama网络环境
确保Ollama监听外部请求
默认情况下,Ollama仅监听 127.0.0.1:11434。需修改环境变量使其监听所有IP:
# 启动Ollama容器时添加环境变量 docker run -d --name ollama \ -p 11434:11434 \ -e OLLAMA_HOST=0.0.0.0 \ # 允许外部访问 ollama/ollama
验证Ollama服务状态
在宿主机执行以下命令,确认API可访问:
curl http://localhost:11434
若返回 Ollama is running 则正常。
步骤2:配置MaxKB连接Ollama
启动MaxKB容器并加入Ollama网络
使用 --network 参数让两个容器共享网络:
docker run -d --name maxkb \ --network container:ollama \ # 共享Ollama的网络命名空间 -p 8080:8080 \ -v ~/.maxkb:/var/lib/postgresql/data \ cr2.fit2cloud.com/1panel/maxkb
或通过Docker内部DNS通信
若未共享网络,在MaxKB容器内使用 Ollama容器名称 作为域名:
# 启动MaxKB时指定Ollama容器网络 docker run -d --name maxkb \ --network my_network \ # 创建自定义网络后加入 -p 8080:8080 \ -v ~/.maxkb:/var/lib/postgresql/data \ cr2.fit2cloud.com/1panel/maxkb
步骤3:在MaxKB中添加Ollama模型
登录MaxKB界面
访问 http://localhost:8080,使用初始账号 admin/maxkb@123… 登录。
添加Ollama模型
- 模型类型:选择
Ollama - API域名:填写
http://ollama:11434(若共享网络)或http://宿主机IP:11434 - 模型名称:与
ollama list中的模型名完全一致(如llama3:8b) - API Key:任意非空字符(如
dummy)
验证连接
点击 测试连接,若显示成功即可保存。
步骤4:创建知识库并关联模型
创建知识库
上传文档(支持PDF/TXT/Markdown等),选择智能分段并导入。
创建应用
在应用中关联知识库和Ollama模型,调整参数(如温度、重复惩罚等)。
测试问答
在应用界面提问,观察是否基于知识库生成答案。
常见问题解决
API域名无效
- 确认Ollama容器IP和端口可访问:
curl http://ollama:11434 - 检查防火墙是否开放
11434端口。
模型无法加载
- 确保模型名称与
ollama list完全一致(区分大小写)。 - 若模型未下载,在Ollama容器内执行
ollama pull 模型名。
跨容器网络不通
创建自定义Docker网络并加入:
docker network create my_network docker network connect my_network ollama docker network connect my_network maxkb
性能优化建议
GPU加速
启动Ollama时添加 --gpus all 参数(需宿主机安装NVIDIA驱动):
docker run -d --gpus all -p 11434:11434 ollama/ollama
模型量化
使用低精度模型(如 llama3:8b-q4_K_M)减少资源占用:
ollama pull llama3:8b-q4_K_M
通过以上步骤,即可在Docker环境中实现MaxKB与Ollama的集成。若需进一步优化响应速度,可考虑部署更高性能的模型或升级硬件配置。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
docker安装elastic search和kibana的实现
本文主要介绍了docker安装elastic search和kibana的实现,,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-04-04
Docker Compose+Nginx+Certbot自动化部署HTTPS的详细指南
打造属于您的全自动 HTTPS 服务,无需复杂配置,无需手动维护,只需 3 个核心文件和 5 分钟时间,即可实现永久自动化的 HTTPS 加密解决方案,下面我们就来看看具体方法吧2025-07-07
dockerExecute 函数和docker.build的区别解析
dockerExecute 通常是一个自定义的函数或者由特定的 Jenkins 库(如 piper-lib)提供,用于在 Docker 容器中执行特定的命令,这篇文章主要介绍了dockerExecute 函数和docker.build的区别,需要的朋友可以参考下2024-12-12
Docker底层技术Namespace Cgroup应用详解
在本篇文章里小编给大家整理的是关于Docker底层技术Namespace Cgroup应用的相关知识点,需要的朋友们学习下。2019-10-10
Docker通过容器生成镜像提交DockerCommit详解
这篇文章主要介绍了Docker通过容器生成镜像提交DockerCommit的详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪2021-09-09


最新评论