使用docker部署skywalking

Intro

之前在本地搭建过一次 skywalking + elasticsearch ,但是想要迁移到别的机器上使用就很麻烦了,于是 docker 就成了很方便的解决方式,只要 dockerfile / docker-compose 定了下来在哪里跑都是一样的。

构建 Docker 镜像

可以直接使用 docker hub 上的镜像 weihanli/skywalking:5.0.0-GA

示例 Dockerfile

FROM centos:7# Timezone, Asia/Shanghai by default
ENV Timezone=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$Timezone /etc/localtime && echo '$Timezone' > /etc/timezoneRUN yum install -y wget && \yum install -y java-1.8.0-openjdkWORKDIR /appADD http://mirror.bit.edu.cn/apache/incubator/skywalking/5.0.0-GA/apache-skywalking-apm-incubating-5.0.0-GA.tar.gz .RUN tar -xf apache-skywalking-apm-incubating-5.0.0-GA.tar.gz && \ mv apache-skywalking-apm-incubating skywalking && \ echo "tail -f /dev/null" >> /app/skywalking/bin/startup.shCMD ["/bin/sh","-c","/app/skywalking/bin/startup.sh" ]

配置 docker-compose 环境

有了 docker 镜像还不够,我们还需要 elasticsearch 来做存储,配置一个 docker-compose 环境会很方便,这里有一个我正在用的配置,仅供参考

docker-compose

docker-compose 示例

注意:如果本地有端口被占用的,请自行修改,另 elasticsearch 需要使用 5.x 版本,skywalking5.x版本不支持 6.x 版本的 elasticsearch

version: '2'
services:elasticsearch:image: elasticsearch:5.6container_name: elasticsearchports:- 9200:9200volumes:- ./es/data:/usr/share/elasticsearch/data- ./es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.ymlskywalking:image: weihanli/skywalking:5.0.0-GAcontainer_name: skywalkingports:- 10800:10800- 11800:11800- 12800:12800- 8090:8080volumes:- ./skywalking/application.yml:/app/skywalking/config/application.ymllinks:- elasticsearch:elasticsearchdepends_on:- elasticsearch

elsticsearch 配置

cluster.name: elasticsearch
network.host: 0.0.0.0
network.publish_host: 0.0.0.0
thread_pool.bulk.queue_size: 1000

主要配置 clusterName 以及 network.host,network.host 要配置成 skywalking 可以访问得到的地址,这里配置了 0.0.0.0

skywalking 配置

主要配置 elsticsearch 的 clusterName 以及 clusterNode 信息

storage:elasticsearch:clusterName: elasticsearchclusterNodes: elasticsearch:9300

clusterName 要与 elasticsearch 的配置相同,clusterNode 的地址需要能够被 skywalking 访问的到

完整示例配置可以参考这里

开始部署

在本地配置好如上所示的docker-compose 环境之后,打开 docker-compose 所在的文件夹执行 docker-compose up 即可启动 skywalking

启动后访问 ui 的端口,默认是 8080,上面的 docker-compose 文件中映射到的是 8090,打开 localhost:8090 登录,默认账号密码为 admin/admin,没有报错就证明我们的skywalking已经部署成功,如果有报错检查 elasticsearch 是否启动成功。

常见问题

  • Elasticsearch 启动失败,The vm.max_map_count kernel setting needs to be set to at least 262144 for production use.

    参考 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode 进行设置

Reference

  • https://github.com/apache/incubator-skywalking/blob/5.x/docs/cn/Deploy-backend-in-standalone-mode-CN.md
  • https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode

转载于:https://www.cnblogs.com/weihanli/p/deploy-skywalking-via-docker.html

使用docker部署skywalking相关推荐

  1. DolphinScheduler 之Docker 部署

    文章目录 快速试用 Docker 部署 先决条件 如何使用 Docker 镜像 一.以 docker-compose 的方式启动 DolphinScheduler (推荐) 0.请配置内存不少于 4G ...

  2. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  3. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

  4. docker部署springboot_Docker+SpringBoot快速构建和部署应用

    前言 Docker技术发展为当前流行的微服务提供了更加便利的环境,使用SpringBoot+Docker部署和发布应用,其实也是一件比较简单的事情.当前,前提是得有Docker的基础. 构建一个Spr ...

  5. docker初体验:docker部署nginx负载均衡集群

    Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx负载均衡集群 环境 ce ...

  6. docker初体验:docker部署nginx服务

    Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx 环境 centos7 ...

  7. Docker系列 四.Docker部署SpringBoot

    四.Docker部署SpringBoot 环境&工具: 阿里云轻量级服务器.CentOS 7系统.FinalShell(其他连接客户端也可以).IDEA 1. 创建springboot项目 这 ...

  8. Docker部署文档

    Docker部署文档 目录 Docker部署文档 1 一.什么是Docker 3 1.1Docker简介 3 1.2对比传统虚拟机总结 4 1.3Docker通常用于如下场景: 5 1.4基本概念 5 ...

  9. Docker部署Zookeeper集群

    Docker部署Zookeeper集群 官方网站: http://zookeeper.apache.org/ http://zookeeper.apache.org/doc/r3.4.8/zookee ...

  10. 部署go的web应用_使用Docker部署Go Web应用

    为什么需要Docker? 使用docker的主要目标是容器化.也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机. 想象一下你是否也会遇到下面这个场景,你在本地开发了你的应用程序,它很可能有很 ...

最新文章

  1. CTFshow php特性 web127
  2. 弱电工程数据中心计算机房内布线
  3. C# 获取并判断操作系统版本,解决Win10、 Windows Server 2012 R2 读取失败的方案
  4. 【算法】漫画:如何找到链表的倒数第n个结点?
  5. 微信小程序 最全 生成带参数二维码
  6. 综述 | 知识图谱实体链接:一份“由浅入深”的综述
  7. win10下VS2013+OpenCV2.4.9环境配置
  8. 关于cocos2dx导入安卓项目至eclipse的诸多问题
  9. Vue.js 入门案例
  10. js--小结⑥---typeof
  11. VMware虚拟机下网络连接的三种模式
  12. copy 和 deepcopy的区别
  13. 线性系统大作业——0.一阶和二阶倒立摆建模与控制系统设计
  14. Oracle11g的安装及删除
  15. word 空格变删除 问题及解决
  16. 自体验谷歌浏览器插件推荐
  17. Ubuntu 无法播放视频
  18. 29转换为8位二进制的转换过程
  19. 遇到不认识的字怎么办
  20. Linux 已修改ip地址(ONBOOT=yes),但是不显示ip地址

热门文章

  1. 关于URL编码(转载)
  2. Lecture 4:无模型预测
  3. 个性化推荐中的矩阵分解技术
  4. 梯度下降来龙去脉附matlab代码
  5. 2018-2019-1 20165319 《信息安全系统设计基础》第四周学习总结
  6. Go-闭包和匿名函数讲解
  7. Java学习6——基本数据类型及其转换
  8. JAVA入门[14]-Spring MVC AOP
  9. git遇到的问题解决方案
  10. 2、Python_Day_1_作业