在国内如何顺利拉取 AstrBot 镜像?

8 人参与

在国内直接 docker pull 官方的 soulter/astrbot:latest 往往会卡在 DNS 解析或国外 CDN 上,导致超时。实际上,这背后是跨境链路的拥塞与运营商的流量调度策略,偶尔一次成功也可能是运气成分。要想把这件事变成可预期的流程,关键在于提前把镜像源切换到国内的加速站点,并让 Docker 引擎在解析时优先走这些站点。

国内镜像渠道概览

  • DaoCloud 加速:m.daocloud.io/docker.io/soulter/astrbot:latest
  • 阿里云容器镜像服务(ACR):registry.cn-hangzhou.aliyuncs.com/soulter/astrbot:latest
  • 腾讯云容器镜像仓库(TCR):ccr.ccs.tencentyun.com/soulter/astrbot:latest
  • 华为云SWR:swr.cn-north-4.myhuaweicloud.com/soulter/astrbot:latest

这些站点背后都有专线直连 Docker Hub,平均响应时间从 200 ms 降到 30 ms 左右。实际使用时,只需要把 Compose 或 Dockerfile 中的 image 字段替换为对应的加速地址,后续的拉取就会自动走国内线路。

Docker 客户端的快速配置技巧

{
    "registry-mirrors": [
        "https://m.daocloud.io",
        "https://registry.cn-hangzhou.aliyuncs.com"
    ],
    "insecure-registries": [
        "ccr.ccs.tencentyun.com"
    ],
    "dns": ["223.5.5.5","223.6.6.6"]
}

把上面的 JSON 保存为 /etc/docker/daemon.json(Linux)或 %programdata%dockerconfigdaemon.json(Windows),重启 Docker 服务后,所有后续的 pullcompose up 都会默认走镜像加速。值得注意的是,dns 项使用运营商的大公网 DNS 能进一步压缩解析时延。

实战案例:一步完成镜像拉取与容器启动

下面是一段完整的命令序列,演示了从配置到运行的闭环。先切换目录,再写入 Compose,最后使用加速镜像启动:

mkdir -p ~/astrbot && cd ~/astrbot
cat > docker-compose.yml <<EOF
version: "3.8"
services:
  astrbot:
    image: m.daocloud.io/docker.io/soulter/astrbot:latest
    container_name: astrbot
    ports:
      - "6180-6200:6180-6200"
      - "11451:11451"
    volumes:
      - ./data:/AstrBot/data
    restart: unless-stopped
EOF
docker compose up -d
docker logs -f astrbot

执行完毕后,日志里会出现类似「🌈 管理面板已启动」的提示,此时打开 http://:6180 即可进入 AstrBot 的 Web UI。若是云服务器,记得在安全组里放通 6180‑6200 与 11451 端口。

参与讨论

8 条评论
  • 数字迷城

    这配置写得挺细,直接照着改果然快多了👍

  • 兔子糖

    阿里云那个镜像我用过,拉取基本秒下

  • 晴空万里

    腾讯云的 registry 要不要先登录啊?求问

  • 沉默炮台

    前几天刚折腾完这个,国内不配镜像真的寸步难行

  • 雾霭星辰

    华为云swr有时候抽风,不如daocloud稳

  • 光之旋律

    换源确实管用,但dns设成114是不是也行?

  • 草莓小喵

    说是能加速,但我这边还是卡在下载层咋回事

  • 音乐诗人

    m.daocloud.io这个记下了,下次直接套用