宝塔面板博客官方技术博客
宝塔拨测

宝塔拨测探针 Docker 部署完整流程:绑定、更新、备份、卸载

宝塔拨测探针(bt-probe-agent)用 Docker 部署,核心就是写好一个 docker-compose.yml 然后 docker-compose up -d,之后登录宝塔账号完成设备绑定即可。本文把绑定、更新、备份恢复、卸载这四件事一次讲清。

Docker 部署探针需要满足什么条件

部署前确认三点:

项目 要求
Docker 20.10 或更高版本,包含 Docker Compose
系统架构 amd64 或 arm64
网络 可以访问宝塔拨测(t.bt.cn)和镜像仓库

如果国内服务器访问 Docker Hub 受限,先配置可用的镜像加速器(见文末常见问题)。

怎么用一条命令启动探针

先创建部署目录,在目录里建一个 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(新疆-伊犁-移动)。

宝塔拨测结果页的区域/运营商汇总表

上图为该次运行的结果页截图,展示按区域和运营商拆分的响应最快、响应最慢、平均响应。这正是你部署的探针节点所参与的网络——节点覆盖越广、越稳定,这类全国多节点检测的结果就越完整。

常见问题

拉取镜像超时怎么办?

国内网络拉取镜像超时时,在 /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 部署宝塔拨测探针》为准;实测数据来自宝塔拨测平台 t.bt.cn 的一次真实 HTTP 拨测运行(目标 docs.bt.cn,采集时间 2026-09-18 08:38)。

常见问题

宝塔拨测探针 Docker 部署需要满足什么条件?

Docker 20.10 或更高版本(含 Docker Compose)、amd64 或 arm64 架构、可以访问宝塔拨测(t.bt.cn)和镜像仓库。国内服务器拉取镜像超时时,先配置可用的镜像加速器即可。

Docker 部署和 SH 脚本部署有什么区别?

两者部署的是同一个探针(bt-probe-agent)。Docker 部署的优势是容器化隔离运行、支持自动更新,数据通过宿主机 bind mount 目录持久化;SH 脚本适合熟悉命令行的服务器用户一条命令快速安装。

绑定 URL 过期了怎么办?

依次执行 docker-compose stop、docker-compose run --rm --entrypoint bt-probe-agent bt-probe-agent public-activate、docker-compose up -d,重新生成绑定 URL 后打开新地址完成绑定。

更新探针容器会丢失数据吗?

不会。探针的配置、历史数据保存在宿主机的 bind mount 目录(/etc/bt-probe-agent 和 /var/lib/bt-probe-agent)中,更新容器或重新拉起容器都不会删除这些数据。

怎么确认探针已经连接主控?

执行 docker exec bt-probe-agent bt-probe-agent status,状态显示探针正在运行,且日志中没有 WSS 连接错误,即表示连接正常。