Docker部署SkyWalking

Docker部署SkyWalking

文章目录

  • Docker部署SkyWalking
    • 前置环境
    • 部署步骤
      • 部署服务端 skywalking-oap
      • 部署UI skywalking-ui
      • 服务器java项目部署
        • 源码包下载
        • Jar 直接启动
        • docker启动

前置环境

docker 19.03.13
ElasticSearch 7.2.0

部署步骤

部署服务端 skywalking-oap

   -- 使用6.6.0版本的skywalking,先部署服务端
   docker run --name skywalking-oap \
       --restart always -d \
       -p 1234:1234 \
       -p 11800:11800 \
       -p 12800:12800 \
       -e TZ=Asia/Shanghai \
       -e SW_STORAGE=elasticsearch \
       -e SW_STORAGE_ES_CLUSTER_NODES=192.168.100.68:9200 \
       apache/skywalking-oap-server:6.6.0-es7
   -- 查询启动日志
   docker logs --tail=100 -f skywalking-oap
脚本说明
SW_STORAGE:指定数据源的存储方式,默认为H2
SW_STORAGE_ES_CLUSTER_NODES: 指定elsticsearch服务

部署UI skywalking-ui

   docker run -d --name skywalking-ui \
       --restart=always -d \
       -e TZ=Asia/Shanghai \
       -p 8072:8080  \
       -e SW_OAP_ADDRESS=192.168.100.18:12800 \
       apache/skywalking-ui:6.6.0
脚本说明
SW_OAP_ADDRESS: 指定oap服务地址

服务器java项目部署

源码包下载

-- 创建存放目录
mkdir -p  /home/jameli/docker/software/skywalking
-- 进入目录
cd /home/jameli/docker/software/skywalking
-- 下载agentjar
wget https://archive.apache.org/dist/skywalking/6.6.0/apache-skywalking-apm-6.6.0.tar.gz
-- 解压
tar -zxvf apache-skywalking-apm-6.6.0.tar.gz

Jar 直接启动

nohup java -javaagent:/home/jamelli/docker/software/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar \
    -Dskywalking.agent.service_name=xxx-xxx-server \
    -Dskywalking.collector.backend_service=192.168.100.18:11800 \
    -jar app.jar  --server.port=8073 >./test-oauth-server.txt &
脚本说明
javaagent: 指定oap解压的jar路径
service_name

docker启动

docker启动需要三个文件放在同目录

deploy.sh    发布脚本
Dockerfile  docker脚本
app.jar     需要运行的jar包

#启动脚本 
./deploy.sh xxx-xxx-server 8081 &

deploy.sh文件

##!/usr/bin/env bash

CONTAINER_NAME=$1
IMAGE_NAME=$1
PORT=$2

echo "正在重新部署 ${CONTAINER_NAME}"

# #停止正在运行的容器
docker stop ${CONTAINER_NAME}

# #删除旧容器
docker rm ${CONTAINER_NAME}

# #删除image,确保下载的是最新镜像
docker rmi ${IMAGE_NAME}

#构建镜像文件
docker build -t ${CONTAINER_NAME} .

#启动容器
docker run --name ${CONTAINER_NAME} \
        --net=host -d -p ${PORT} \
        -v /opt/docker/middleware/${CONTAINER_NAME}/logs/:/data/projects/logs/${CONTAINER_NAME}/  \
        -v /home/creationpoint/docker/software/skywalking/apache-skywalking-apm-bin/agent/:/home/creationpoint/docker/software/skywalking/apache-skywalking-apm-bin/agent/ \
        -m 2048m \
        --memory-swap=2724m \
        -c 2048 \
        ${CONTAINER_NAME}

echo "容器 ${CONTAINER_NAME} 重新部署成功"

docker logs -f ${CONTAINER_NAME}

Dockerfile文件

FROM openjdk:11-jre

COPY app.jar /app.jar

ENV TZ=Asia/Shanghai

ENTRYPOINT ["java", "-Xmx512m", "-Djava.security.egd=file:/dev/./urandom", "-javaagent:/home/creationpoint/docker/software/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar","-Dskywalking.agent.service_name=$SERVERNAME" "-Dskywalking.collector.backend_service=192.168.100.18:11800", "-jar", "/app.jar"]

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

CMD ["--spring.profiles.active=docker"]

$SERVERNAME 填写自己应用的名称 ,如 xxx-xxx-server

你可能感兴趣的:(服务部署,Docker部署,skywalking,docker,服务器)