
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为Spring Music应用的Docker化部署方案,基于Java Spring框架和MongoDB数据库,整合了Apache Tomcat、NGINX负载均衡、ELK日志栈(Elasticsearch、Logstash、Kibana)及Filebeat日志收集工具,支持多容器架构的构建、测试与监控。
需安装VirtualBox、Docker、Docker Compose、Docker Machine。
bashgit clone -b docker_v2 --single-branch https://github.com/garystafford/spring-music-docker.git music && cd music
bashdocker-machine create --driver virtualbox springmusic eval "$(docker-machine env springmusic)"
bashdocker volume create --name music_data && docker volume create --name music_elk docker network create -d bridge music_net
bashdocker-compose -p music up -d elk && sleep 15 docker-compose -p music up -d mongodb && sleep 15 docker-compose -p music up -d app && docker-compose scale app=3 && sleep 15 docker-compose -p music up -d proxy && sleep 15
核心配置文件docker-compose.yml采用v2格式,定义了proxy(NGINX)、app(Tomcat)、mongodb、elk四个服务,使用外部卷存储数据,通过bridge网络实现容器通信。
yamlversion: '2' services: proxy: build: nginx/ ports: [80:80] networks: [net] depends_on: [app] app: build: tomcat/ ports: [8080] networks: [net] depends_on: [mongodb] mongodb: build: mongodb/ ports: [27017:27017] networks: [net] depends_on: [elk] volumes: [music_data:/data/db, music_data:/data/configdb] elk: image: sebp/elk:latest ports: [5601:5601, 9200:9200, 5044:5044,5000:5000] networks: [net] volumes: [music_elk:/var/lib/elasticsearch] volumes: music_data: {external: true} music_elk: {external: true} networks: net: {driver: bridge}
执行curl命令测试负载均衡效果:
bashfor i in {1..6}; do curl -I $(docker-machine ip springmusic); done
通过Upstream-Address字段可观察到请求轮询分配到不同Tomcat实例,且静态资源缓存后响应时间显著缩短。
===FULL_DESC=== # Spring Music Docker镜像(Tomcat版本) ## 镜像概述 本镜像为Spring Music应用的Docker化部署方案,基于Java Spring框架和MongoDB数据库,整合Apache Tomcat运行环境、NGINX负载均衡、ELK日志栈(Elasticsearch、Logstash、Kibana)及Filebeat日志收集工具,支持多容器架构的构建、测试、部署与监控。 ## 核心功能 1. **多容器协同**:包含NGINX代理、可扩展Tomcat实例、MongoDB数据库、ELK日志系统四大组件; 2. **负载均衡**:NGINX实现Tomcat实例的轮询负载均衡,提升应用并发处理能力; 3. **静态资源优化**:NGINX缓存静态资源,减少Tomcat服务压力并提高前端响应速度; 4. **日志聚合分析**:Filebeat收集容器日志,ELK栈实现日志存储、检索与可视化; 5. **CI/CD集成**:支持Travis CI自动化构建与部署,通过GitHub管理构建产物。 ## 使用场景 1. **本地开发测试**:快速搭建Spring + MongoDB应用环境,验证功能逻辑; 2. **技术学习实践**:掌握Docker多容器部署、负载均衡、日志聚合等企业级容器技术; 3. **演示案例**:展示Java应用容器化的完整解决方案,适用于培训或技术分享。 ## 配置说明 ### 依赖工具 需提前安装:VirtualBox、Docker、Docker Compose、Docker Machine。 ### 部署步骤 1. **克隆项目代码**: ```bash git clone -b docker_v2 --single-branch https://github.com/garystafford/spring-music-docker.git music && cd music
bashdocker-machine create --driver virtualbox springmusic eval "$(docker-machine env springmusic)"
bashdocker volume create --name music_data && docker volume create --name music_elk docker network create -d bridge music_net
bash# 按顺序启动服务(确保依赖服务就绪) docker-compose -p music up -d elk && sleep 15 docker-compose -p music up -d mongodb && sleep 15 docker-compose -p music up -d app && docker-compose scale app=3 && sleep 15 docker-compose -p music up -d proxy && sleep 15
核心配置文件docker-compose.yml采用v2格式,定义四大服务及资源依赖:
yamlversion: '2' services: proxy: # NGINX代理服务 build: nginx/ ports: [80:80] networks: [net] depends_on: [app] app: # Tomcat应用服务(可扩展) build: tomcat/ ports: [8080] networks: [net] depends_on: [mongodb] mongodb: # 数据库服务 build: mongodb/ ports: [27017:27017] networks: [net] depends_on: [elk] volumes: [music_data:/data/db, music_data:/data/configdb] elk: # 日志分析服务 image: sebp/elk:latest ports: [5601:5601,9200:9200,5044:5044,5000:5000] networks: [net] volumes: [music_elk:/var/lib/elasticsearch] volumes: music_data: {external: true} # 存储MongoDB数据 music_elk: {external: true} # 存储ELK数据 networks: net: {driver: bridge} # 容器通信网络
执行curl命令测试负载均衡效果:
bashfor i in {1..6}; do curl -I $(docker-machine ip springmusic); done
通过Upstream-Address字段可观察请求轮询分配到不同Tomcat实例,静态资源缓存后Request-Time显著缩短,验证负载均衡与缓存功能正常。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务