
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://travis-ci.org/openzipkin/docker-zipkin.svg](https://travis-ci.org/openzipkin/docker-zipkin) https://quay.io/repository/openzipkin/zipkin/status "zipkin"](https://quay.io/repository/openzipkin/zipkin) https://quay.io/repository/openzipkin/zipkin-slim/status "zipkin-slim"](https://quay.io/repository/openzipkin/zipkin-slim) https://quay.io/repository/openzipkin/zipkin-cassandra/status "zipkin-cassandra"](https://quay.io/repository/openzipkin/zipkin-cassandra) https://quay.io/repository/openzipkin/zipkin-mysql/status "zipkin-mysql"](https://quay.io/repository/openzipkin/zipkin-mysql) https://quay.io/repository/openzipkin/zipkin-elasticsearch/status "zipkin-elasticsearch"](https://quay.io/repository/openzipkin/zipkin-elasticsearch) https://quay.io/repository/openzipkin/zipkin-elasticsearch5/status "zipkin-elasticsearch5"](https://quay.io/repository/openzipkin/zipkin-elasticsearch5) https://quay.io/repository/openzipkin/zipkin-elasticsearch6/status "zipkin-elasticsearch6"](https://quay.io/repository/openzipkin/zipkin-elasticsearch6) https://quay.io/repository/openzipkin/zipkin-kafka/status "zipkin-kafka"](https://quay.io/repository/openzipkin/zipkin-kafka) https://quay.io/repository/openzipkin/zipkin-ui/status "zipkin-ui"](https://quay.io/repository/openzipkin/zipkin-ui)
本仓库包含https://github.com/openzipkin/zipkin%E7%9A%84Docker%E6%9E%84%E5%BB%BA%E5%AE%9A%E4%B9%89%E5%92%8C%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B%EF%BC%8C%E5%90%8C%E6%97%B6%E5%8C%85%E5%90%AB%E4%BC%A0%E8%BE%93%E5%92%8C%E5%AD%98%E5%82%A8%E5%90%8E%E7%AB%AF%EF%BC%88%E5%A6%82Kafka%E6%88%96Cassandra%EF%BC%89%E7%9A%84%E6%B5%8B%E8%AF%95%E9%95%9C%E5%83%8F%E3%80%82
自动构建的镜像可在Quay.io的https://quay.io/organization/openzipkin%E7%BB%84%E7%BB%87%E4%B8%8B%E8%8E%B7%E5%8F%96%EF%BC%8C%E5%B9%B6%E5%90%8C%E6%AD%A5%E5%88%B0https://hub.docker.com/u/openzipkin/%E3%80%82
OpenZipkin提供的生产环境可用镜像仅包括:
如果使用这些镜像时遇到问题,请提交issue或加入https://gitter.im/openzipkin/zipkin%E4%BA%A4%E6%B5%81%E3%80%82
此处的其他镜像及docker-compose配置仅用于开发和探索目的,例如帮助快速集成完整的Zipkin系统进行测试,无需深入了解其工作原理,也无需下载大量文件。
例如,openzipkin/zipkin-cassandra并非为实际生产使用设计,它无法配置多个节点,也不具备生产环境所需的文件系统处理能力。我们期望生产用户使用官方存储或传输镜像(如Kafka),仅测试或学习Zipkin时使用本仓库提供的镜像。
Zipkin无依赖,例如可运行内存中的Zipkin服务器:
docker run -d -p 9411:9411 openzipkin/zipkin-slim
通过(docker ip):9411访问UI。
在UI中,点击zipkin-server,然后点击“Find Traces”。
配置通过环境变量进行,具体定义见https://github.com/openzipkin/zipkin/blob/master/zipkin-server/README.md%E3%80%82%E9%87%8D%E8%A6%81%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8C%85%E6%8B%AC%60STORAGE_TYPE%60%EF%BC%8C%E5%85%B6%E5%80%BC%E5%8F%AF%E8%AE%BE%E4%B8%BA%E2%80%9Ccassandra%E2%80%9D%E2%80%9Cmysql%E2%80%9D%E2%80%9Celasticsearch%E2%80%9D%E7%AD%89%E3%80%82
注意:openzipkin/zipkin-slim镜像仅支持“elasticsearch”存储。如需使用其他存储类型,必须使用主镜像openzipkin/zipkin。
在Docker环境中,以下环境变量同样适用:
JAVA_OPTS:用于设置Java参数,如堆大小或信任存储位置。STORAGE_PORT_9042_TCP_ADDR:监听9042端口的Cassandra节点。启动容器时,通常通过链接运行zipkin-cassandra的容器并命名为“storage”来设置此变量。STORAGE_PORT_3306_TCP_ADDR:监听3306端口的MySQL节点。启动容器时,通常通过链接运行zipkin-mysql的容器并命名为“storage”来设置此变量。STORAGE_PORT_9200_TCP_ADDR:监听9200端口的Elasticsearch节点。启动容器时,通常通过链接运行zipkin-elasticsearch的容器并命名为“storage”来设置此变量。当设置ES_HOSTS或ES_AWS_DOMAIN时,此变量将被忽略。KAFKA_PORT_2181_TCP_ADDR:监听2181端口的ZooKeeper节点。启动容器时,通常通过链接运行zipkin-kafka的容器并命名为“kafka”来设置此变量。例如,要添加调试日志,可设置JAVA_OPTS,如docker-compose文件所示:
yaml- JAVA_OPTS=-Dlogging.level.zipkin=DEBUG -Dlogging.level.zipkin2=DEBUG
openzipkin/zipkin和openzipkin/zipkin-slim镜像运行在名为“zipkin”的nologin用户下,主目录为“/zipkin”。由于是无发行版(distroless)镜像,未安装许多工具,但可通过以下方式使用shell浏览内容:
bash$ docker run -it --rm --entrypoint /busybox/sh openzipkin/zipkin /zipkin $ ls BOOT-INF META-INF org run.sh
本项目配置支持使用https://docs.docker.com/compose/%E8%BF%90%E8%A1%8C%E5%AE%B9%E5%99%A8%EF%BC%8C%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E8%A6%81%E6%B1%82docker-compose 1.6.0+和docker-engine 1.10.0+。
启动默认docker-compose配置:
$ docker-compose up
通过$(docker ip):9411访问Web UI。
要在UI中查看特定追踪,从下拉菜单选择“zipkin-server”,然后点击“Find Traces”按钮。
启动更小更快的Zipkin发行版:
bash$ docker-compose -f docker-compose-slim.yml up
此配置使用内存存储。精简版仅支持的其他存储选项是Elasticsearch:
bash$ docker-compose -f docker-compose-slim.yml -f docker-compose-elasticsearch.yml up
默认docker-compose配置(docker-compose.yml)使用MySQL作为后端,启动zipkin、zipkin-mysql和zipkin-dependencies(定时任务)容器。
可通过docker-compose-cassandra.yml文件扩展docker-compose配置,使用Cassandra替代MySQL,该文件通过https://docs.docker.com/compose/extends/#multiple-compose-files%E6%9B%BF%E6%8D%A2%E5%AD%98%E5%82%A8%E5%AE%B9%E5%99%A8%E3%80%82
启动Cassandra后端配置:
$ docker-compose -f docker-compose.yml -f docker-compose-cassandra.yml up
可通过docker-compose-elasticsearch.yml文件扩展docker-compose配置,使用Elasticsearch替代MySQL,该文件通过https://docs.docker.com/compose/extends/#multiple-compose-files%E6%9B%BF%E6%8D%A2%E5%AD%98%E5%82%A8%E5%AE%B9%E5%99%A8%E3%80%82
启动Elasticsearch后端配置:
$ docker-compose -f docker-compose.yml -f docker-compose-elasticsearch.yml up
Elasticsearch 5+及主机设置
zipkin-elasticsearch5和zipkin-elasticsearch6镜像对虚拟内存要求更严格(详情见https://github.com/docker-library/docs/tree/master/elasticsearch#host-setup%EF%BC%89%EF%BC%8C%E9%9C%80%E7%9B%B8%E5%BA%94%E8%B0%83%E6%95%B4%EF%BC%88%E5%B0%A4%E5%85%B6%E6%98%AFElasticsearch%E5%B4%A9%E6%BA%83%E6%97%B6%EF%BC%89%EF%BC%9A
bash# 若Docker运行在主机上,直接调整内核设置 $ sudo sysctl -w vm.max_map_count=262144 # 若使用docker-machine/Docker Toolbox/Boot2Docker,远程调整相同设置 $ docker-machine ssh default "sudo sysctl -w vm.max_map_count=262144"
可通过docker-compose-kafka.yml文件扩展docker-compose配置,启动测试Kafka broker并激活https://github.com/openzipkin/zipkin/tree/master/zipkin-collector/kafka%EF%BC%8C%E8%AF%A5%E6%96%87%E4%BB%B6%E9%80%9A%E8%BF%87https://docs.docker.com/compose/extends/#multiple-compose-files%E6%B7%BB%E5%8A%A0Kafka+ZooKeeper%E5%AE%B9%E5%99%A8%E5%8F%8A%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE%E3%80%82
启动MySQL+Kafka配置:
$ docker-compose -f docker-compose.yml -f docker-compose-kafka.yml up
然后配置https://github.com/openzipkin/zipkin-reporter-java/blob/master/kafka11/src/main/java/zipkin2/reporter/kafka11/KafkaSender.java%EF%BC%8C%E8%8B%A5%E5%BA%94%E7%94%A8%E5%9C%A8%E5%90%8C%E4%B8%80Docker%E7%BD%91%E7%BB%9C%E4%B8%AD%EF%BC%8C%60bootstrapServers%60%E8%AE%BE%E4%B8%BA%60host.docker.internal:9092%60%EF%BC%9B%E8%8B%A5%E5%9C%A8%E5%90%8C%E4%B8%80%E4%B8%BB%E6%9C%BA%E4%BD%86%E4%B8%8D%E5%9C%A8%E7%BD%91%E7%BB%9C%E4%B8%AD%EF%BC%8C%E8%AE%BE%E4%B8%BA%60localhost:19092%60%E3%80%82
例如,若在本地运行示例应用,使用localhost:19092作为bootstrap server发送span到Docker中的Kafka broker。
可通过docker-compose-ui.yml文件扩展docker-compose配置,使用NGINX容器在80端口托管UI,该文件通过https://docs.docker.com/compose/extends/#multiple-compose-files%E6%B7%BB%E5%8A%A0NGINX%E5%AE%B9%E5%99%A8%E5%8F%8A%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE%E3%80%82
启动NGINX配置:
$ docker-compose -f docker-compose.yml -f docker-compose-ui.yml up
该容器可作为围绕Zipkin创建代理配置的基础,如认证、处理zipkin-js应用的CORS或SSL终止。
Zipkin内置Prometheus指标导出器。主docker-compose.yml启动Prometheus(配置为抓取Zipkin指标,暴露在9090端口),以及禁用认证的Grafana(暴露在3000端口)。启动后,Grafana配置Prometheus为数据源,并导入仪表盘(https://grafana.com/dashboards/1598%EF%BC%89%EF%BC%8C%E5%8F%AF%E9%80%9A%E8%BF%87%60$DOCKER_IP:3000/dashboard/db/zipkin-prometheus%60%E8%AE%BF%E9%97%AE%E4%BB%AA%E8%A1%A8%E7%9B%98%E3%80%82
若要独立运行zipkin-ui并连接远程Zipkin服务器,需设置ZIPKIN_BASE_URL:
bash$ docker run -d -p 80:80 \ -e ZIPKIN_BASE_URL=http://myfavoritezipkin:9411 \ openzipkin/zipkin-ui
Docker Machine与Kafka
若使用Docker Machine,需调整docker-compose-kafka.yml中的KAFKA_ADVERTISED_HOST_NAME及Kafka发送器的bootstrapServers配置,以匹配Docker主机IP(如192.168.99.100:***)。
若使用外部MySQL服务器或镜像,确保数据库 schema 及其他参数与https://github.com/openzipkin/zipkin/tree/master/zipkin-storage/mysql-v1#applying-the-schema%E4%B8%80%E8%87%B4%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务