Anything LLM 项目 Docker 部署完全指南
2025-07-05 01:45:43作者:江焘钦
前言
Anything LLM 是一个功能强大的语言模型应用平台,通过 Docker 部署可以显著简化安装和配置过程。本文将详细介绍如何使用 Docker 容器化技术部署 Anything LLM,包括环境准备、部署步骤、常见问题解决等内容。
环境准备
硬件要求
- 内存:至少 2GB RAM(云环境推荐)
- 存储:最低 10GB 存储空间(根据文档和向量数据量调整)
- CPU架构:支持 amd64 和 arm64
软件依赖
- Docker 环境(Docker v18.03+ for Win/Mac,20.10+ for Linux)
- Node.js 和 Yarn(仅本地构建时需要)
推荐部署方式
1. 拉取最新镜像
docker pull mintplexlabs/anythingllm
2. 运行容器
Linux/MacOS 环境
export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm
Windows 环境
$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env" -ItemType File}; `
docker run -d -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION\.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
mintplexlabs/anythingllm;
Docker Compose 方式
version: '3.8'
services:
anythingllm:
image: mintplexlabs/anythingllm
container_name: anythingllm
ports:
- "3001:3001"
cap_add:
- SYS_ADMIN
environment:
- STORAGE_DIR=/app/server/storage
- JWT_SECRET="随机生成的长字符串(20+字符)"
- LLM_PROVIDER=ollama
- OLLAMA_BASE_PATH=http://127.0.0.1:11434
- OLLAMA_MODEL_PREF=llama2
- OLLAMA_MODEL_TOKEN_LIMIT=4096
- EMBEDDING_ENGINE=ollama
- EMBEDDING_BASE_PATH=http://127.0.0.1:11434
- EMBEDDING_MODEL_PREF=nomic-embed-text:latest
- EMBEDDING_MODEL_MAX_CHUNK_LENGTH=8192
- VECTOR_DB=lancedb
- WHISPER_PROVIDER=local
- TTS_PROVIDER=native
- PASSWORDMINCHAR=8
volumes:
- anythingllm_storage:/app/server/storage
restart: always
volumes:
anythingllm_storage:
driver: local
driver_opts:
type: none
o: bind
device: /本地磁盘路径
访问应用
部署完成后,通过浏览器访问 http://localhost:3001
即可使用 Anything LLM 的全部功能。所有数据将持久化存储在挂载的本地目录中。
高级配置
本地服务连接问题
当容器需要访问宿主机上的服务时(如 Ollama、ChromaDB 等),不能使用 localhost
或 127.0.0.1
,而应该使用:
- Windows/Mac:
host.docker.internal
- Linux:
172.17.0.1
或添加--add-host=host.docker.internal:host-gateway
参数
远程访问配置
如果 Docker 运行在远程服务器上,需要修改前端 API 基础路径:
# frontend/.env.production
GENERATE_SOURCEMAP=false
VITE_API_BASE="http://<服务器IP>:3001/api"
权限问题
默认 UID 和 GID 设置为 1000,如果宿主机用户 ID 不同,可能导致权限问题,需要在 .env
文件中调整。
常见问题解决
Ollama 连接问题
如果出现 ECONNREFUSED
错误,请检查:
- Ollama 服务是否正常运行
- 连接地址是否正确使用了
host.docker.internal
或172.17.0.1
- 端口是否正确映射
API 无法访问
确保:
- 容器端口 3001 已正确映射
- 远程访问时已配置正确的
VITE_API_BASE
- 防火墙未阻止端口访问
本地构建(高级用户)
对于需要自定义构建的用户:
- 克隆项目仓库
- 创建空数据库文件:
touch server/storage/anythingllm.db
- 复制环境文件:
cp docker/.env.example .env
- 构建并运行:
docker-compose up -d --build
最佳实践
- 数据持久化:始终挂载存储卷到本地目录
- 环境隔离:为生产环境配置独立的
.env
文件 - 资源监控:定期检查存储空间和内存使用情况
- 备份策略:定期备份挂载的存储目录
通过以上步骤,您可以轻松部署和管理 Anything LLM 的 Docker 版本,享受容器化带来的便利性和稳定性。