将LightRAG部署到服务器
服务器上容器通信问题
将两个容器放置在同一个网络中
# 创建自定义网络(如果尚未创建)
docker network create rag-network
# 将 Ollama 和 LightRAG 容器连接到同一网络
docker network connect rag-network ollama-container-name
docker network connect rag-network lightrag-container-name
获取ollama的ip地址
# 获取 Ollama 容器的 IP 地址
OLLAMA_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 3577eccba13c)
echo $OLLAMA_IP
测试连接
# 进入LightRAG容器内部,测试连接效果
# 在容器内安装 curl
apt-get update && apt-get install -y curl
# 然后重新运行您的 curl 命令:
curl http://OLLAMA_IP:11434/api/embeddings -X POST \
-H "Content-Type: application/json" \
-d '{"model":"bge-m3:latest","prompt":"你好"}'
将LightRAG配置文件中的ollama地址改为ip地址

查看LightRAG容器的日志输出
# 实时查看日志输出(持续跟踪)
docker logs -f LightRAG_container-id
# 查看最近 100 行日志
docker logs --tail 100 LightRAG_container-id
# 查看特定时间后的日志
docker logs --since 10m LightRAG_container-id # 过去10分钟
ollama容器停止后模型消失
# 挂载持久化存储目录
docker run -d -v ollama-models:/root/.ollama -p 11434:11434 ollama/ollama
# 验证模型存储路径
docker exec -it ollama ls /root/.ollama/models
# 重新启动容器
docker run -d -v ollama-models:/root/.ollama -p 11434:11434 ollama/ollama
数据挂载问题

docker配置文件已经完成挂载
问题分析
1.unable to allocate CPU buffer
这个错误通常有以下几种原因:
- 系统内存不足(RAM 或 Swap)
- Docker 容器内存限制过低
- 模型太大无法加载
- 系统文件描述符限制
- Ollama 配置问题
增加交换缓存
# 创建 4GB 交换文件(根据需要调整大小)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
查看容器内存限制
# 查看 Ollama 容器内存限制
docker inspect LightRAG_id | grep -i memory
[root@iZ2vcffs4hmho1yesqg2kdZ ~]# docker inspect a284b9cdd7f8 | grep -i memory
"Memory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"Memory": 0
- 含义:容器未设置内存使用上限(单位:字节)。
- 解释:值为
0表示容器可以无限制地使用宿主机内存。
"MemoryReservation": 0
- 含义:容器未设置内存软限制(单位:字节)。
- 解释:软限制是 Docker 在检测到宿主机内存不足时,尝试强制容器遵守的内存阈值。值为
0表示未启用此功能。
"MemorySwap": 0
- 含义:容器未设置 Swap 交换空间上限(单位:字节)。
- 解释:
MemorySwap表示 内存 + Swap 的总容量。- 若同时设置
Memory和MemorySwap:MemorySwap = 1G+Memory = 500M→ 容器可用内存 500M,Swap 500M。
- 值为
0表示未限制 Swap 使用(实际可用 Swap 受宿主机限制)。 - 若
Memory有上限但MemorySwap=-1→ 容器可使用无限 Swap(慎用)。
"MemorySwappiness": null
- 含义:使用宿主机默认的 Swappiness 配置。
- 解释:
Swappiness控制内核将内存页交换到磁盘的倾向(范围:0-100)。0:尽量禁用 Swap(除非内存耗尽)。100:积极使用 Swap。
null表示继承宿主机设置(通常为60)。
增加内存限制重新启动
# 重新运行 Ollama 容器,增加内存限制(至少 4GB)
docker run -d --name ollama -p 11434:11434 --memory=4g --memory-swap=8g ollama/ollama

浙公网安备 33010602011771号