Docker部署jaeger:手把手教你用Docker部署

手把手教你用Docker部署Jaeger链路追踪系统

如果你正在做微服务架构调试或性能分析,Jaeger 是一个非常实用的链路追踪工具。
本文围绕 Docker部署jaeger 展开,按零基础也能直接照做的方式讲清准备条件、操作步骤、常见报错和验证方法。

环境与前提

  • 一台已安装 Docker 的 Linux 服务器(推荐 2 核 4G 以上)。
  • Docker 版本不低于 20.10。
  • 服务器防火墙开放 16686(Web 管理界面)和 6831/6832(Agent UDP 端口)等。
  • 确保能正常拉取 Docker Hub 镜像(若使用国内服务器,建议配置镜像加速器)。

检查 Docker 是否安装:

docker --version

如果未安装,参考官方文档或使用包管理器安装(如 yum install -y docker-ce)。

Docker 一键部署 Jaeger(all-in-one 模式)

对于测试或小规模使用,官方提供 all-in-one 镜像,包含 Agent、Collector、Query 和 UI,一个容器搞定。

执行以下命令启动:

docker run -d --name jaeger \
  -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
  -p 5775:5775/udp \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 14250:14250 \
  -p 14268:14268 \
  -p 14269:14269 \
  -p 9411:9411 \
  jaegertracing/all-in-one:latest

参数说明:

  • -d 后台运行。
  • --name jaeger 容器名。
  • -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 开启 Zipkin 兼容端口(可不加)。
  • 端口映射:16686 是 Web UI,6831/6832 是 Agent 接收 Jaeger 客户端数据的 UDP 端口,14268 为 Collector 的 HTTP 端口,14250 为 gRPC 端口。

启动后可通过 docker ps 确认容器状态:

docker ps | grep jaeger

看到 STATUS Up 即正常。

配置文件与关键参数说明

若需要使用持久化存储(而非默认内存),可以通过挂载外部存储或配置环境变量。
例如将数据保存到 Elasticsearch:

docker run -d --name jaeger \
  -e SPAN_STORAGE_TYPE=elasticsearch \
  -e ES_SERVER_URLS=http://your-es:9200 \
  -p 16686:16686 \
  jaegertracing/all-in-one:latest
注意:生产环境建议拆分部署(Agent、Collector、Query 等组件各自独立),但本文只演示 all-in-one 入门用法。

另外,时区问题常见于日志时间显示。
在 docker run 中添加 -e TZ=Asia/Shanghai 即可设置时区。

常见问题与避坑

Q1:端口被占用怎么办?
例如 16686 已被其他应用占用,可修改宿主端口映射:-p 8080:16686,之后通过 http://服务器IP:8080 访问。

Q2:启动时提示 "port is already allocated"
停掉占用端口的容器:docker stop <容器名> 或者更换端口映射。

Q3:Web UI 打开后看不到任何数据?
检查应用是否已正确配置 Jaeger 客户端(如 OpenTelemetry SDK),并确保 Agent 地址能访问。若只在本地测试,可以先用官方示例应用:

docker run --rm -p 8000:8000 jaegertracing/example-hotrod:latest all

该应用会自动向 jaeger 发送数据,然后在 UI 中搜索 service 名为 hotrod 的 trace。

避坑清单:

  • 防火墙 / 安全组必须放行 UDP 6831、6832 和 TCP 16686。
  • 容器名不能重复,建议每次先 docker rm -f jaeger 再重新创建。
  • 默认存储为内存,重启容器后历史数据丢失,生产务必配置持久化后端。

验证是否部署成功

打开浏览器访问 http://你的服务器IP:16686,看到 Jaeger UI 页面。
点击左侧“Search”标签,在“Service”下拉框中如果能看到 hotrod 或你的应用 service 名,说明 Docker部署jaeger 已成功上线并收到了追踪数据。

你可以点击任意 trace 查看调用链详情(每条 span 的耗时、标签、日志等)。
至此,链路追踪系统搭建完成,后续可对接任意 OpenTelemetry 或 Jaeger 客户端 SDK。

如果你正在处理 Docker部署jaeger,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分,通常能快速解决。

分享到:
上一篇
Linux服务器网络带宽优化:从调整内核参数到实战验证
下一篇
服务器日志管理系统搭建实用教程,零基础也能操作
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意