一句话答案:Docker 部署宝塔拨测探针(bt-probe-agent)的核心就两步——写好 docker-compose.yml 后执行 docker-compose up -d,再查看 activation.json 拿绑定 URL、登录宝塔账号完成设备绑定。数据全部落在宿主机 bind mount 目录里,更新、重启、down 都不会丢。
部署前的三个前置条件动手前先核对这几点:
|
| 项目
| 要求
| Docker
| 20.10 或更高版本,包含 Docker Compose
| 系统架构
| amd64 或 arm64
| 网络
| 可以访问宝塔拨测(t.bt.cn)和镜像仓库
| 国内服务器访问 Docker Hub 受限的话,先把镜像加速器配好(配置方法见文末常见问题),否则拉镜像会卡住。
第一步:写好 docker-compose.yml 并启动
建一个部署目录,在目录里新建 docker-compose.yml:
- services:
- bt-probe-agent:
- image: docker.cnb.cool/btpanel/bt-probe-agent:latest
- container_name: bt-probe-agent
- restart: always
- cap_add:
- - NET_RAW
- volumes:
- - /run/bt-probe-agent:/run/bt-probe-agent
- - /etc/bt-probe-agent:/etc/bt-probe-agent
- - /var/lib/bt-probe-agent:/var/lib/bt-probe-agent
- environment:
- - TBT_CONTROL_PLANE_URL=https://t.bt.cn
- - TBT_AGENT_ENDPOINT=wss://t.bt.cn/ws/agent
- - BT_PROBE_LOG_MODE=file
- healthcheck:
- test: ["CMD", "bt-probe-agent", "status"]
- interval: 60s
- timeout: 5s
- retries: 3
- start_period: 10s
复制代码 在 docker-compose.yml 所在目录执行:
容器第一次启动时会自动初始化 Agent 身份、生成配置文件和激活会话,不需要额外执行任何初始化命令。
第二步:绑定设备
查看绑定信息:
- docker exec bt-probe-agent cat /var/lib/bt-probe-agent/activation.json
复制代码 输出里有两样东西可用:verification_uri_complete 是完整的绑定 URL,user_code 是设备码,二者选其一即可完成绑定。
- {
- "agent_uuid": "9aaba087-...",
- "user_code": "6USA-A53X",
- "verification_uri_complete": "https://t.bt.cn/activate/6USA-A53X",
- "expires_at": 1784791588,
- "status": "waiting_login"
- }
复制代码 在浏览器打开 verification_uri_complete 对应的 URL,登录宝塔账号并完成设备绑定。绑定是探针生效的前提,绑定完成后探针才开始上报自检数据。
绑定 URL 过期了怎么办?
- docker-compose stop
- docker-compose run --rm --entrypoint bt-probe-agent bt-probe-agent \
- public-activate
- docker-compose up -d
复制代码
再次查看 activation.json,用新的 URL 完成绑定。
日常维护命令
|
| 操作
| 命令
| 查看状态
| docker exec bt-probe-agent bt-probe-agent status
| 查看日志
| docker-compose logs -f bt-probe-agent
| 重启
| docker-compose restart
| 停止
| docker-compose stop
| 怎么更新探针探针支持自动更新:主控下发更新指令后,容器内会自动下载并校验新版本、替换二进制文件,然后退出并由容器引擎重新启动,全程无需人工干预。
需要手动更新镜像时执行:
- docker-compose pull
- docker-compose up -d
复制代码 数据保存在宿主机 bind mount 目录中,更新容器不会删除数据。
数据存在哪、怎么备份恢复
探针的数据分三处,全都在宿主机上:
|
| 内容
| 宿主机位置
| 身份配置
| /etc/bt-probe-agent/config.json
| 历史数据
| /var/lib/bt-probe-agent/(自检数据、日志、激活会话)
| 运行时文件
| /run/bt-probe-agent/(socket、PID、锁文件)
| 执行 docker-compose down 不会删除这些目录中的数据。
备份:
- tar czf /backup/agent-backup.tar.gz \
- /etc/bt-probe-agent /var/lib/bt-probe-agent
复制代码 恢复到新服务器:
- tar xzf /backup/agent-backup.tar.gz -C /
复制代码 恢复完成后保留原有探针身份,无需重新绑定。
怎么卸载- 只停止服务、保留容器和数据:docker-compose stop
- 删除容器但保留宿主机数据:docker-compose down
- 彻底卸载:先执行 docker-compose down,确认不再需要后手动删除以下目录:
- /etc/bt-probe-agent
- /var/lib/bt-probe-agent
- /run/bt-probe-agent
复制代码 删除以上目录后无法恢复探针身份和历史数据,删除前先做好备份。
你加入的是这样一个网络
探针部署并绑定后,就成为宝塔拨测网络里的一个节点,为 HTTP、PING、TCP、DNS 等监控任务提供多地域、多线路的探测能力。感受一下规模:2026-09-18 08:38 对 docs.bt.cn 的一次真实 HTTP 拨测中,299 个节点全部成功,覆盖 43 个区域(其中大陆 30 个、港澳台及海外 13 个),所有节点 HTTP 状态码均为 200,官方聚合平均响应 508.3ms,中位数 354.2ms,最快 80.9ms(陕西-咸阳-电信),最慢 6149.5ms(新疆-伊犁-移动)。节点覆盖越广、越稳定,这类全国多节点检测的结果就越完整。
部署方式的选择(SH 脚本、插件)可参考 探针部署三种方式。
常见问题拉取镜像超时怎么办?
国内网络环境拉不动镜像时,在 /etc/docker/daemon.json 里配置镜像加速器,然后重启 Docker 服务:
- {
- "registry-mirrors": [
- "https://docker.m.daocloud.io",
- "https://docker.1panel.live",
- "https://hub.rat.dev"
- ]
- }
复制代码 怎么确认探针已连接主控?
- docker exec bt-probe-agent bt-probe-agent status
复制代码 状态显示探针正在运行,且日志中没有 WSS 连接错误,即表示连接正常。
Docker 部署和 SH 脚本部署有什么区别?
两边装的是同一个探针(bt-probe-agent)。Docker 的优势在于容器隔离运行、支持自动更新,数据通过宿主机 bind mount 目录持久化;SH 脚本则适合熟悉命令行的服务器用户一条命令快速安装。按环境习惯二选一即可。
更新探针容器会丢失数据吗?
不会。配置和历史数据都在宿主机的 bind mount 目录(/etc/bt-probe-agent 和 /var/lib/bt-probe-agent)里,更新镜像、重新拉起容器都不会碰这些数据,放心操作。
绑定 URL 过期了怎么重新生成?
依次执行 docker-compose stop、docker-compose run --rm --entrypoint bt-probe-agent bt-probe-agent public-activate、docker-compose up -d,然后重新查看 activation.json,用新的 URL 打开浏览器完成绑定。
有问题欢迎回帖。
|
|