如何 使用 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容器IP和端口可访问:
-
模型无法加载
- 确保模型名称与
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的集成。若需进一步优化响应速度,可考虑部署更高性能的模型或升级硬件配置。