使用 Docker 部署 AstrBot

哈哈哈 2026-1-1 81 1/1
AI智能摘要
想为QQ或微信部署一个功能强大的机器人助手AstrBot,却被复杂的安装步骤劝退?别担心,这篇文章为你提供了一站式的“Docker部署”终极指南。无论你的系统是Windows、Mac还是Linux,都能通过几条简单的命令轻松完成部署,并顺利解决国内网络环境下的镜像拉取难题。
— AI 生成的文章内容摘要

使用 Docker 部署 AstrBot

WARNING

通过 Docker 可以方便地将 AstrBot 部署到 Windows, Mac, Linux 上。

以下教程默认您的环境已安装 Docker。如果没有安装,请参考 Docker 官方文档 进行安装。

通过 Docker Compose 部署

如果您想使用 NapCat 将 AstrBot 部署到 QQ(个人号),使用这种方式会同时部署 AstrBot 和 NapCat,更快。
mkdir astrbot cd astrbot wget https://raw.githubusercontent.com/NapNeko/NapCat-Docker/main/compose/astrbot.yml sudo docker compose -f astrbot.yml up -d

 

首先,需要 Clone AstrBot 仓库到本地:

git clone https://github.com/AstrBotDevs/AstrBot
cd AstrBot

 

然后,运行 Compose:

 

sudo docker compose up -d

 

TIP

如果您的网络环境在中国大陆境内,上述命令将无法正常拉取。您可能需要修改 compose.yml 文件,将其中的 image: soulter/astrbot:latest 替换为 image: m.daocloud.io/docker.io/soulter/astrbot:latest

通过 Docker 部署

mkdir astrbot
cd astrbot
sudo docker run -itd -p 6180-6200:6180-6200 -p 11451:11451 -v $PWD/data:/AstrBot/data -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --name astrbot soulter/astrbot:latest

TIP

如果您的网络环境在中国大陆境内,上述命令将无法正常拉取。请使用以下命令拉取镜像:

sudo docker run -itd -p 6180-6200:6180-6200 -p 11451:11451 -v $PWD/data:/AstrBot/data -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --name astrbot m.daocloud.io/docker.io/soulter/astrbot:latest

关于端口映射,如果您不想映射上面这么多端口,可以参考下表:

Port Description Type
6185 AstrBot WebUI 默认 端口 需要
6195 企业微信 默认 端口 可选
6199 OneBot(aiocqhttp) 默认 端口 可选
6196 QQ 官方 API(Webhook) HTTP callback server 默认 端口 可选

Windows 下不需要加 sudo,下同 Windows 同步 Host Time(需要WSL2)

-v \wsl.localhost(your-wsl-os)etctimezone:/etc/timezone:ro
-v \wsl.localhost(your-wsl-os)etclocaltime:/etc/localtime:ro

 

通过以下命令查看 AstrBot 的日志:

sudo docker logs -f astrbot

TIP

AstrBot 支持基于 Docker 的沙箱代码执行器。如果你需要使用沙箱代码执行器,请额外添加 -v /var/run/docker.sock:/var/run/docker.sock 参数。即:

sudo docker run -itd -p 6180-6200:6180-6200 -p 11451:11451 -v $PWD/data:/AstrBot/data -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --name astrbot soulter/astrbot:latest

🎉 大功告成

如果一切顺利,你会看到 AstrBot 打印出的日志。

如果没有报错,你会看到一条日志显示类似 🌈 管理面板已启动,可访问 并附带了几条链接。打开其中一个链接即可访问 AstrBot 管理面板。

TIP

由于 Docker 隔离了网络环境,所以不能使用 localhost 访问管理面板。

默认用户名和密码是 astrbot 和 astrbot

如果部署在云服务器上,需要在相应厂商控制台里放行 6180-6200 和 11451 端口。

接下来,你需要部署任何一个消息平台,才能够实现在消息平台上使用 AstrBot。

- THE END -

哈哈哈

1月11日07:04

最后修改:2026年1月11日
0

非特殊说明,本博所有文章均为博主原创。

共有 23 条评论

回复给 血煞魔 点击这里取消回复。

  1. 旧日记忆

    docker部署确实方便,一次搞定

  2. 星海之舟

    国内网络环境真是一言难尽啊🤦

    1. 夜梦无边

      @星海之舟: 国内拉镜像太折磨了,加了daocloud才跑起来

  3. 苔藓庭院

    这个端口映射表挺实用的

    1. PumpkinPie

      @苔藓庭院: 端口说明清楚多了,不然真不知道哪些能省

  4. SneakyPants

    有人试过在mac上部署成功吗?

  5. 发光的韭菜

    我之前在ubuntu上搞过类似的,配置起来比这个麻烦多了

  6. 电磁之瞳

    为啥要映射这么多端口?感觉有点复杂

    1. 小羊羔

      @电磁之瞳: 其实只用WebUI的话开6185就行,其他按需开

  7. WombatWarrior

    WSL2那个时间同步的写法第一次见

  8. 血煞魔

    管理面板默认密码建议改一下

  9. 霜冻蛛

    沙箱执行器是干啥用的?

  10. 独白

    部署完访问不了管理后台咋整

  11. 深海澜

    我试了Mac部署,M2芯片跑得挺稳的

  12. 春樱

    默认账号密码没改,差点被扫了,大家注意啊

  13. 琥珀川

    沙箱执行器能隔离代码运行环境,安全点

  14. 幻影之茧

    刚在树莓派上跑起来了,ARM镜像也支持?

  15. 沙堡建筑师

    感觉文档里WSL2那块路径写漏了反斜杠

  16. 热情的阳

    docker logs看了半天,原来要等两分钟才出面板链接

  17. 惊蛰雷鸣

    这图还挺酷,机器人+集装箱直接把概念讲明白了

  18. 躺椅上的咸鱼

    为啥非得挂这么多volume?data目录不就够了吗

  19. 合金风暴

    前几天刚搞完这个,确实折腾了好久

  20. 混沌元素使

    有人遇到启动后CPU狂飙的情况吗?