探针用Docker怎么部署?从启动容器到绑定、更新、备份、...
一句话答案: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 所在目录执行:
docker-compose up -d容器第一次启动时会自动初始化 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"
]
}systemctl restart docker怎么确认探针已连接主控?
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 打开浏览器完成绑定。
有问题欢迎回帖。
页:
[1]