如何在ELK Docker映像中升级Elasticsearch

问题描述

我已使用以下命令在Linux服务器上安装了麋鹿docker映像:

sudo docker pull sebp/elk

这将提取最新版本的麋鹿码头工人镜像,即7.8.0,并且堆栈中的每个服务(elasticsearchlogstashkibana)的版本也为7.8。 .0。

出于安全原因,我需要将elasticsearch升级到7.9.0。在继续使用sebp/elk码头工人形象的同时如何做?

解决方法

Elk自带软件包,可运行所有3个服务并默认链接它们。使用此设置,您将无法仅拆分和升级elasticsearch。

我建议您使用docker-compose独立运行所有三个服务。这样每个服务都可以有您选择的图像。

示例docker-compose供您参考:

version: '3.2'

services:
  elasticsearch:
    image: IMAGE_GOES_HERE
    volumes:
      - type: bind
        source: ./elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: elasticsearch
        target: /usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
      ELASTIC_PASSWORD: changeme
      # Use single node discovery in order to disable production mode and avoid bootstrap checks
      # see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
      discovery.type: single-node
    networks:
      - elk

  logstash:
    image: IMAGE_GOES_HERE
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: bind
        source: ./logstash/pipeline
        target: /usr/share/logstash/pipeline
        read_only: true
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk
    depends_on:
      - elasticsearch

  kibana:
    image: IMAGE_GOES_HERE
    volumes:
      - type: bind
        source: ./kibana/config/kibana.yml
        target: /usr/share/kibana/config/kibana.yml
        read_only: true
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch

networks:
  elk:
    driver: bridge

volumes:
  elasticsearch: