Docker Compose 本地环境搭建:skywalking
·
Docker Compose 本地环境搭建:skywalking
🔗 前言:Docker Compose 本地环境搭建相关文章
🐳 Docker Compose 本地环境搭建:skywalking
注意:需要已经安装 elasticsearch。
📚 目录结构设计
推荐使用如下结构:
infra/
├── .env
├── mysql/
│ └── docker-compose.yml
├── redis/
│ └── docker-compose.yml
├── elasticsearch/
│ └── docker-compose.yml
├── skywalking/
│ └── docker-compose.yml
├── nacos/
│ └── docker-compose.yml
📄 docker-compose.yml
# =========================================================
# 用于构建环境:SkyWalking OAP/UI
# 宿主机挂载目录、端口、密码、版本号、环境后缀均通过 .env 文件管理
# =========================================================
###########################################################
# 网络配置
###########################################################
networks:
env_network: # 内部网络标识固定
driver: bridge
name: ${NETWORK_NAME} # Docker 实际网络名动态生成
ipam:
config:
- subnet: ${NETWORK_SUBNET} # 子网从 .env 获取
###########################################################
# 服务定义
###########################################################
services:
# SkyWalking OAP
skywalking-oap:
image: apache/skywalking-oap-server:${SW_VERSION}
container_name: skywalking-oap_${SW_VERSION}_${ENV}
networks:
- env_network
ports:
- "${SW_OAP_PORT_GRPC}:11800"
- "${SW_OAP_PORT_REST}:12800"
environment:
SW_STORAGE: elasticsearch
SW_STORAGE_ES_HTTP_PROTOCOL: http
# 内部访问 ES 使用服务名,不用 container_name
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
SW_ES_USER: elastic
SW_ES_PASSWORD: ${SW_ES_PASSWORD}
SW_CORE_RECORD_DATA_TTL: 7
SW_CORE_METRICS_DATA_TTL: 15
SW_CORE_LOG_DATA_TTL: 7
SW_STORAGE_FLUSH_INTERVAL: 10
restart: unless-stopped
labels:
env: ${ENV}
version: ${SW_VERSION}
service: skywalking-oap_${ENV}
# SkyWalking UI
skywalking-ui:
image: apache/skywalking-ui:${SW_VERSION}
container_name: skywalking-ui_${SW_VERSION}_${ENV}
networks:
- env_network
depends_on:
skywalking-oap:
condition: service_started
ports:
- "${SW_UI_PORT}:8080"
environment:
SW_OAP_ADDRESS: http://skywalking-oap:12800
restart: unless-stopped
labels:
env: ${ENV}
version: ${SW_VERSION}
service: skywalking-ui_${ENV}
🚀 启动方式
在 .env 同级目录下执行
docker compose --env-file .env -f skywalking/docker-compose.yml up -d
- -d 表示 后台运行
- Compose 会:
- 自动读取 .env 文件里的变量
- 根据 docker-compose.yml 配置创建网络、卷和容器
- 容器名、端口、挂载目录都会根据 .env 替换
🌐 浏览器访问
http://localhost:20000/

🔍 项目中使用SkyWalking
下载 SkyWalking Agent(必须)
SkyWalking Agent Java配置 官网:https://skywalking.apache.org/docs/skywalking-java/v9.5.0/en/setup/service-agent/java-agent/readme/
SkyWalking Agent 官网下载链接:https://skywalking.apache.org/downloads/#JavaAgent


解压后如下
1 IDEA(IntelliJ)运行方式
📌 步骤
- 打开 Run/Debug Configurations
- 找到启动项,如 “SpringBootApp”
- 找到字段:VM Options
- 添加:增加 VM 启动参数
Dskywalking.collector.backend_service使用11800的映射端口,我这里是21800-javaagent:D:/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=spring-boot-demo-V3.5.7 -Dskywalking.collector.backend_service=127.0.0.1:21800
注意:Windows 在 IDEA 中要用 / 而不是 \,否则可能无法识别路径。
2 Windows:使用 java -jar 方式启动
假设你的 jar 是:
D:\project\my-app.jar
SkyWalking Agent 放在:
D:\skywalking-agent\
启动命令:
java -javaagent:D:\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=my-app -Dskywalking.collector.backend_service=127.0.0.1:21800 -jar D:\project\my-app.jar
验证是否成功接入 SkyWalking
查看 SkyWalking UI
http://localhost:28080/
应看到:
- 服务列表出现 my-app
- 有 JVM 信息(CPU、内存、GC)
- 有链路(如 MySQL、Elasticsearch、HTTP 请求)

更多推荐




所有评论(0)