本帖最后由 da11 于 2025-4-24 21:30 编辑
SkyWalking-10.2 Docker容器部署方案
环境准备:
1.CentOS 7.2
2.Docker 版本在 19.03 及以上
最终部署的容器是3个:
1.skywalking-banyandb
2.skywalking-oap-server
3.skywalking-ui
1.Docker拉取官方容器:
1.docker pull apache/skywalking-banyandb:latest
2.docker pull apache/skywalking-oap-server:10.2.0
3.docker pull apache/skywalking-ui:10.2.0
2.启动banyandb数据库
2.1 首先创建数据库映射目录
mkdir -p /data/skywalking-data/banyandb/
2.2 运行banyandb数据库容器
docker run -d --name banyandb -p 17913:17913 apache/skywalking-banyandb:latest standalone --stream-root-path /data/skywalking-data/banyandb/stream-data --measure-root-path /data/skywalking-data/banyandb/measure-data
如图所示表示运行成功,端口映射成功。
3.启动skywalking-oap-server服务
3.1 首先创建skywalking-oap-server服务配置文件映射目录
mkdir -p /data/skywalking-data/opa-config
3.2 先运行一遍容器以获取到内部配置文件
docker run -d --name oap -e TZ=Asia/Shanghai -p 12800:12800 -p 11800:11800 -v /skywalking/config/:/data/skywalking-data/opa-config/ --privileged=true --restart always apache/skywalking-oap-server:10.2.0
3.3 复制容器内部配置文件至映射目录
docker cp oap:/skywalking/config/ /data/skywalking-data/opa-config/
cd /data/skywalking-data/opa-config/
mv config/* ./
3.4 编辑bydb.yml(注意:skywalking-oap-server 10.2.0版本,banyandb的配置从application.yml转移至bydb.yml)
vim /data/skywalking-data/opa-config/bydb.yml
SW_STORAGE_BANYANDB_TARGETS后面的参数需要编辑:127.0.0.1:17912改成banyandb(就是banyandb容器的name,之后需要使用link连接从而达到互相通信的效果)
3.5 确认application.yml配置文件的SW_STORAGE参数是否选择了banyandb数据库
cat /data/skywalking-data/opa-config/application.yml
3.6 删除之前第一遍运行的skywalking-oap-server服务
docker rm -f oap
3.7 正式运行skywalking-oap-server服务
docker run -d --name=oap -p 11800:11800 -p 12800:12800 --ulimit nofile=10240:10240 --link banyandb:banyandb -e SW_STORAGE=banyandb -e SW_STORAGE_BANYANDB_TARGETS=banyandb:17912 -e SW_HEALTH_CHECKER=default -e JAVA_OPTS="-Xms2048m -Xmx2048m" --privileged=true -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime -v /data/skywalking-data/opa-config/bydb.yml:/skywalking/config/bydb.yml apache/skywalking-oap-server:10.2.0
参数解析:
--ulimit nofile 限制文件打开数
--link 连接其他容器,为容器之间开通网络直连通道,可以通过容器名直接访问此容器内部
-e 容器专属配置
--privileged=true 让容器获取真正的root权限,如果不加,可能会出现GC内存不足报错!
-v 目录映射
如上图表示运行成功。
4.启动skywalking-ui服务
docker run -d --name opa-ui -p 9090:8080 --link oap:oap --privileged=true -e TZ=Asia/Shanghai -e SW_OAP_ADDRESS=http://oap:12800 -v /etc/localtime:/etc/localtime apache/skywalking-ui:10.2.0
# 这里我端口映射了9090端口,可以自定义更改
5.docker容器状态验证
6.浏览器验证
大功告成~
|