使用Docker部署ollama和MaxKB全过程

 更新时间:2025年07月09日 08:38:20   作者:炫爱小七  
配置Ollama监听所有IP,修改环境变量;MaxKB容器连接Ollama,设置API地址及模型名;创建知识库并关联模型,测试问答,解决网络、模型名等问题,优化GPU加速和量化模型

步骤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的实现

    本文主要介绍了docker安装elastic search和kibana的实现,,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • docker network create命令的具体使用

    docker network create命令的具体使用

    docker network create命令用于创建一个新的网络连接,本文就来详细的介绍一下docker network create命令的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • docker安装MinIO全过程

    docker安装MinIO全过程

    Minio是一个高性能的面向对象存储服务,使用Go语言编写,支持跨平台,本文介绍了如何使用Docker安装Minio,并通过配置用户名密码、创建Bucket和上传图片进行简单的存储操作
    2024-12-12
  • Docker Compose+Nginx+Certbot自动化部署HTTPS的详细指南

    Docker Compose+Nginx+Certbot自动化部署HTTPS的详细指南

    打造属于您的全自动 HTTPS 服务,无需复杂配置,无需手动维护,只需 3 个核心文件和 5 分钟时间,即可实现永久自动化的 HTTPS 加密解决方案,下面我们就来看看具体方法吧
    2025-07-07
  • dockerExecute 函数和docker.build的区别解析

    dockerExecute 函数和docker.build的区别解析

    dockerExecute 通常是一个自定义的函数或者由特定的 Jenkins 库(如 piper-lib)提供,用于在 Docker 容器中执行特定的命令,这篇文章主要介绍了dockerExecute 函数和docker.build的区别,需要的朋友可以参考下
    2024-12-12
  • iptables使用及docker的iptables规则

    iptables使用及docker的iptables规则

    Docker在创建容器时,会自动添加一些iptables规则来实现网络隔离和转发等功能,本文主要介绍了iptables使用及docker的iptables规则,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Docker底层技术Namespace Cgroup应用详解

    Docker底层技术Namespace Cgroup应用详解

    在本篇文章里小编给大家整理的是关于Docker底层技术Namespace Cgroup应用的相关知识点,需要的朋友们学习下。
    2019-10-10
  • Docker通过容器生成镜像提交DockerCommit详解

    Docker通过容器生成镜像提交DockerCommit详解

    这篇文章主要介绍了Docker通过容器生成镜像提交DockerCommit的详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-09-09
  • docker容器资源配额控制详解

    docker容器资源配额控制详解

    本篇文章主要介绍了docker容器资源配额控制详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Docker desktop安装mysql过程

    Docker desktop安装mysql过程

    文章介绍了如何在本地已有的Docker环境中拉取并启动MySQL容器,并详细说明了常用的环境变量参数,此外,还讨论了如何通过挂接本地磁盘来持久化MySQL数据,从而避免数据丢失
    2024-12-12

最新评论