使用docker技术,快速在linux上搭建常用的中间件,elk、consul、 nexus 篇(下)。

前言

hello!大家好呀!今天是2020-08-07号,星期五,又和大家见面了,我是会打篮球会做饭的程序员,御前带糖侍卫。今天这篇文章是紧接着上一篇文章的内容,上一篇讲了如何在linux系统搭建docker环境,以及使用docker搭建mysql、activemq、redis 组件。今天就和大家讲讲如何在linux上搭建 elk、consul、 nexus 吧。教程开始之前先简单介绍一下这些中间件吧。

  1. elk 即 elasticsearch + logstash + kibana 的组合。elasticsearch不用说了,优秀的搜索引擎数据库,elogstash可用于线上的日志采集,或者其他的数据输入,存储到es里面 ,通过kibana查看es里面的数据。
  2. consul 作为微服务的服务注册中心。
  3. nexus maven私服,可以上传私有的jar包。

1. elk ----> 使用docker搭建elk环境

  1. 第一步:安装docker环境,没有安装的参考上一篇文章
  2. 第二步:使用docker-compose的方式安装elk
  • 为了方便,可以使用docker-compose方式
  • 创建一个elk文件夹,文件目录结构
  • 编写 docker-compose.yml
    elk目录
version: '2'
services:

  elasticsearch:
    build:
      context: elasticsearch/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
      - ./elasticsearch/data:/usr/share/elasticsearch/data:rw 
      - ../xpack/x-pack-core-7.2.0.jar:/usr/share/elasticsearch/modules/x-pack-core/x-pack-core-7.2.0.jar 
      - ./elasticsearch/plugins:/usr/share/elasticsearch/plugins
    restart: always    
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx4g -Xms4g"
      ELASTIC_PASSWORD: changeme
    networks:
      - elk
        
  logstash:
     build:
       context: logstash/
       args:
         ELK_VERSION: $ELK_VERSION
     volumes:
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro
      - ./logstash/pipeline:/usr/share/logstash/pipeline:ro
        # - ./libs/mysql-connector-java-8.0.11.jar:/opt/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.11.jar
      - ./libs/jdk1.8.1_221:/usr/share/logstash/jdk8
        #- ./libs/mysql.conf:/usr/share/logstash/config/mysql.conf
     restart: always
     ports:
      - "5000:5000"
      - "9600:9600"
        #command: "-f /usr/share/logstash/config/mysql.conf"
     environment:
       LS_JAVA_OPTS: "-Xmx256m -Xms256m"
       JAVA_HOME: "/usr/share/logstash/jdk8"
     networks:
      - elk
     depends_on:
      - elasticsearch

  kibana:
    build:
      context: kibana/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro
    restart: always
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch

networks:
  elk:
    driver: bridge
  • docker-compose的方式启动elk
docker-compose up -d

2. nexus ----> maven私服 nexus3

  • 搜索 nexus 镜像
docker search nexus 

nexus搜索结果

  • 拉取镜像,一般选择第一个,可以加上版本号,不加的话默认最新版本,latest
docker pull sonatype/nexus3
  • 查看镜像是否拉取成功
docker images

拉取镜像的结果

  • docker run 方式启动 sonatype/nexus3
docker run -d --privileged=true --name=fuhang_nexus3 --restart=always -p 8081:8081 -v /root/nexus-data:/var/nexus-data sonatype/nexus3
命令命令的含义
-d后台运行
-p暴露的端口号,‘:’前面的是宿主机对外暴露的端口号,后面的组件的端口号
-vdocker容器里面挂在在宿主机的文件目录,‘:’前面是宿主机的文件目录,后面是组件在docker容器里面的文件目录
-eenvironment运行环境,设置mysql的密码
  • 为了方便,可以使用docker-compose方式
  • 创建一个nexus3文件夹,文件目录结构
  • 编写 docker-compose.yml
    nexus文件目录
version: '3'
services:
  nexus:
    image: sonatype/nexus3
    container_name: nexus3
    restart: always
    ports:
      - 8082:8081
    volumes:
      - /root/nexus-data:/var/nexus-data
  • docker-compose的方式启动nexus3
docker-compose up -d

3. consul----> 微服务 注册服务中心

  1. 第二步:使用docker-compose的方式安装consul
  • 为了方便,可以使用docker-compose方式
  • 创建一个consul文件夹,文件目录结构
  • 编写 docker-compose.yml
    consul文件目录
version: '2'
networks:
  byfn:
 
services:
  consul1:
    image: consul
    container_name: node1
    command: agent -server -bootstrap-expect=3 -node=node1 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
    restart: always
    networks:
      - byfn
 
  consul2:
    image: consul
    container_name: node2
    command: agent -server -retry-join=node1 -node=node2 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
    restart: always
    depends_on:
        - consul1
    networks:
      - byfn
 
  consul3:
    image: consul
    container_name: node3
    command: agent -server -retry-join=node1 -node=node3 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
    restart: always
    depends_on:
        - consul1
    networks:
      - byfn
 
  consul4:
    image: consul
    container_name: node4
    command: agent -retry-join=node1 -node=ndoe4 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1 -ui
    restart: always 
    ports:
      - 8500:8500
    depends_on:
        - consul2
        - consul3
    networks:
      - byfn
  • docker-compose的方式启动consul
docker-compose up -d

三、结束语

  1. 今天内容到此结束,本篇文章我们 介绍了安装maven私服,nexus、elk、consul 的docker-compose的搭建方式。需要配置文件的发邮箱1170115956@qq.com有空就会给你发过去的!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值