在本地挂载存储并在 Docker 中运行 AnythingLLM

在使用 AnythingLLM 时,为了确保数据的持久化和安全性,我们通常需要在本地挂载存储目录。这样,即使 Docker 容器被删除或重建,数据也不会丢失。本文将详细介绍如何在本地挂载存储并在 Docker 中运行 AnythingLLM。


一、准备工作

1. 安装 Docker

确保你已经安装并启动了 Docker。如果还没有安装,可以从 Docker 官网下载并安装:


二、配置本地存储

1. 创建存储目录

在本地创建一个目录用于保存 AnythingLLM 的持久化文件。例如,在 Linux 或 macOS 上:

bash复制

sudo mkdir -p /app/anythingllm
sudo chmod 777 /app/anythingllm -R

在 Windows 上,可以使用类似以下路径:

bash复制

set STORAGE_LOCATION=%USERPROFILE%\Documents\anythingllm
mkdir %STORAGE_LOCATION%
2. 创建 .env 文件

在存储目录中创建一个 .env 文件,用于存储配置参数:

bash复制

touch /app/anythingllm/.env

或者在 Windows 上:

bash复制

type nul > %STORAGE_LOCATION%\.env

SERVER_PORT=3001
STORAGE_DIR="/app/anythingllm"
UID='1000'
GID='1000'
chmod 777 .env

三、运行 Docker 容器

1. 拉取 AnythingLLM 镜像

拉取最新版本的 AnythingLLM 镜像:

bash复制

docker pull mintplexlabs/anythingllm:latest
2. 运行 Docker 容器

使用以下命令运行 AnythingLLM 容器,并挂载本地存储目录:

bash复制


docker run -d -p 3001:3001 \
  --restart always \
  --cap-add SYS_ADMIN \
  --add-host=host.docker.internal:host-gateway \
  -v /app/anythingllm:/app/server/storage \
  -v /app/anythingllm/.env:/app/server/.env \
  -e STORAGE_DIR="/app/server/storage" \
  --name anythingllm \
  mintplexlabs/anythingllm:latest

其中:
-d 表示后台运行容器。
--restart always 设置容器的重启策略。
--name anythingllm 为容器指定一个名称。
--cap-add SYS_ADMIN 添加SYS_ADMIN能力给容器,这意味着容器将获得更多的系统管理权限,比如进行磁盘管理、网络配置等
--privileged=true 使容器以特权模式运行,这将给予容器几乎相同于宿主机的权限。
-p 3001:3001 \ 将容器的3001端口映射到宿主机的3001端口。
-v /data/docker/anythingllm/data:/app/server/storage 将宿主机的数据目录挂载到容器中。
/data/docker/anythingllm/env/env.txt:/app/server/.env 将宿主机的配置文件挂载到容器中。
mintplexlabs/anythingllm 指定要使用的AnythingLLM镜像和版本(latest)。

在 Windows 上,可以使用类似以下命令:

bash复制

docker run -d -p 3001:3001 \
  --cap-add SYS_ADMIN \
  --add-host=host.docker.internal:host-gateway \
  -v %STORAGE_LOCATION%:/app/server/storage \
  -v %STORAGE_LOCATION%\.env:/app/server/.env \
  -e STORAGE_DIR="/app/server/storage" \
  --name anythingllm \
  mintplexlabs/anythingllm:latest

四、验证运行状态

1. 查看容器状态

运行以下命令查看容器是否正常启动:

bash复制

docker ps
2. 查看日志

如果需要查看容器的日志,可以运行:

bash复制

docker logs anythingllm -f
3. 访问 Web 界面

打开浏览器,访问 http://localhost:3001,如果安装无误,你应该能看到 AnythingLLM 的界面。


五、常见问题及解决方案

1. 权限问题

如果你遇到权限问题,确保挂载的目录和文件具有正确的权限。可以使用以下命令调整权限:

bash复制

sudo chmod -R 777 /app/anythingllm
2. 路径问题

确保 .env 文件和存储目录的路径正确。如果路径不正确,容器可能无法正确加载配置。

3. 容器无法启动

如果容器无法启动,可以查看日志以获取更多信息:

bash复制

docker logs anythingllm

六、总结

通过上述步骤,你可以在本地挂载存储并在 Docker 中运行 AnythingLLM。所有数据和进度将持久保存在本地存储目录中,即使容器重建或重新拉取镜像,数据也不会丢失。如果在运行过程中遇到问题,可以参考官方文档或社区支持。

希望本文能帮助你顺利运行 AnythingLLM。如果有任何问题,欢迎在评论区留言交流。


参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CarlowZJ

我的文章对你有用的话,可以支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值