Windows 中使用 docker 部署 AnythingLLM

Windows 中使用 docker 部署 AnythingLLM

  • 需求:为了满足多人共享本地知识库,同时便于统一管理知识库,所以需要一个可以多人共享的客户端,最好是 web 应用。
  • 准备:查阅资料发现 AnythingLLM 可以满足要求,但是需要 Linux 系统的 docker 部署,由于服务器和本地电脑都是 windows 系统,所以尝试在 WSL 中部署。
  • 结论:通过实验证明 Windows server2019 无法部署,查阅资料显示,Windows Server2019 只支持 WSL1,无法支持 WSL2,而 WSL1 中的 Linux 内核是不完整的,不能支持全部功能;重新尝试 Windows 10 的 WSL,顺利完成部署。

参考资料

准备 WSL 环境安装 Linux 发行版

  1. 开启 WSL

    bash 复制代码
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  2. 下载 Linux 发行版

    bash 复制代码
    Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing
  3. 修改安装包的扩展名并启动安装文件

    bash 复制代码
    Rename-Item ./Ubuntu-1804.appx ./Ubuntu.zip
    Expand-Archive ./Ubuntu.zip ./Ubuntu
    ./Ubuntu/ubuntu1804.exe

安装 Docker

  1. 使用镜像下载安装,详 developer.aliyun.com/mirror/dock...

    bash 复制代码
    # step 1: 安装必要的一些系统工具
    sudo apt-get update
    sudo apt-get install ca-certificates curl gnupg
    
    # step 2: 信任 Docker 的 GPG 公钥
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
    
    # Step 3: 写入软件源信息
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
      "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
     
    # Step 4: 安装Docker
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
    # 安装指定版本的Docker-CE:
    # Step 1: 查找Docker-CE的版本:
    # apt-cache madison docker-ce
    #   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
    #   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
    # Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
    # sudo apt-get -y install docker-ce=[VERSION]
  2. 启动服务

    bash 复制代码
    # 查看服务
    ps -ef|grep
    # 当前用户添加到用户组
    sudo usermod -aG docker $USER
    # 启动服务(sysvinit), WSL 中可能无法使用 systemctl 命令
    sudo service docker start
    # 查看服务运行状态
    sudo service docker status
    # 停止服务
    sudo service docker stop

安装 anythingllm

  1. 如果有私有镜像库或畅通的网络环境可直接拉取,否则需要手动下载镜像文件,推荐一个免费好用的方案 github.com/wukongdaily...

  2. 安装 npm 和 yarn

  3. 加载镜像文件

    bash 复制代码
    sudo docker load -i mintplexlabs_anythingllm_latest-amd64.tar.gz
  4. 参考官方文档编写启动脚本

    bash 复制代码
    cat >run_anything_llm_docker.sh << EOF
    export STORAGE_LOCATION=$HOME/anythingllm && \
    mkdir -p $STORAGE_LOCATION && \
    touch "$STORAGE_LOCATION/.env" && \
    sudo docker run -d -p 3001:3001 \
    --cap-add SYS_ADMIN \
    --user root \
    -v ${STORAGE_LOCATION}:/app/server/storage \
    -v ${STORAGE_LOCATION}/.env:/app/server/.env \
    -e STORAGE_DIR="/app/server/storage" \
    mintplexlabs/anythingllm
    EOF
  5. 特殊说明

    bash 复制代码
    # 启动配置 /.env:/app/server/.env 文件权限不够,所以相对于官方文档增加 root 用户启动
    --user root
    # 如果 anythingllm 文件夹权限不够,需要修改权限
    sudo chmod 777 anythingllm
  6. 启动容器

    bash 复制代码
    sh run_anything_llm_docker.sh
    # 检查容器状态,显示 healthy 则容器可访问
    sudo docker ps
    # 浏览器访问,如果无法访,回到 Windows 系统打开 WSL Settings 检查网络设置
    127.0.0.1:3001

提供给局域网用户访问

  1. 配置 Windows 防火墙
  • 打开"控制面板" > "系统和安全" > "Windows Defender 防火墙">"高级设置">"入站规则"
  • 添加一条新的规则,使得 3001 端口可通过,选择 TCP
  1. 在 Windows 上以管理员身份打开 PowerShell

    bash 复制代码
    #配置端口转发
    netsh interface portproxy add v4tov4 listenport=3001 listenaddress=0.0.0.0 connectport=3001 connectaddress=127.0.0.1
    # 检查端口转发是否生效
    netsh interface portproxy show all
    # 查询本机的局域网 ip (如 192.168.0.100)
    ipconfig
    # 其他设备通过 http://192.168.0.100:3001 访问服务
相关推荐
码农三叔1 分钟前
破解自动驾驶感知决策难题:智能导航技术与实战指南
人工智能·机器学习·自动驾驶
Awu12272 分钟前
每天一个 Agent Skills:Context7 — 让 AI 永远写出最新的代码
人工智能·aigc·ai编程
机器白学8 分钟前
OpenClaw使用前置准备:Ollama+OpenwebUI本地部署/API调用大模型
人工智能·大语言模型
Blurpath住宅代理10 分钟前
AI代理配置实战指南:构建高可用、低风险的网络出口层
人工智能·ai·自动化·静态ip·动态代理·住宅ip·住宅代理
心无旁骛~14 分钟前
【Claude Code开发】AI记账助手(miaozhang)微信小程序开发与部署完整指南
人工智能·微信小程序·notepad++
桜吹雪26 分钟前
在前端运行Qwen3.5原生多模态模型
前端·人工智能·机器学习
nix.gnehc27 分钟前
AI时代的三重镜像:技术平权、数字祭道、认知外包
人工智能
星空下的月光影子28 分钟前
贝叶斯优化加速工业AI模型超参数调优
人工智能
东莞呵呵31 分钟前
从Linear到MLP AI模型的数学本质
人工智能·深度学习·机器学习
SmartBrain37 分钟前
Spring Boot 中常用注解总结(AI工程化)
java·人工智能·spring boot·后端