Как обновить elasticsearch в образе ELK Docker

Я установил образ elk docker на сервер Linux, используя следующую команду:

sudo docker pull sebp/elk

Это извлечет последнюю версию образа Docker elk, то есть 7.8.0, и каждая служба в стеке (elasticsearch, logstash и kibana) также имеет версию 7.8.0.

Мне нужно обновить elasticsearch до 7.9.0 по соображениям безопасности. Как я могу это сделать, продолжая использовать образ докера sebp/elk?


person Adam Zarn    schedule 03.09.2020    source источник
comment
Это хорошая причина для запуска Elasticsearch, Logstash и Kibana в отдельных контейнерах, возможно, управляемых Docker Compose; тогда вы можете просто обновить версию образа для конкретной единицы программного обеспечения, которое вам нужно. Вам нужно будет получить файл Dockerfile этого образа, обновить установленные в нем версии и повторно запустить docker build, чтобы обновить его.   -  person David Maze    schedule 03.09.2020
comment
Кроме того, дополнительная версия Kibana должна соответствовать дополнительной версии Elasticsearch. Если вы обновляете elasticsearch до версии 7.9.X, вам также необходимо обновить Kibana до версии 7.9.X.   -  person leandrojmp    schedule 03.09.2020
comment
У меня сработало просто изменение версии образа и перезапуск с помощью «docker-compose up». Осторожно, это не официальная рекомендация по обновлению.   -  person Robycool    schedule 20.07.2021


Ответы (1)


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:
person Suman    schedule 03.09.2020
comment
Я получаю эту ошибку: › ОШИБКА: для elasticsearch Не удается запустить службу elasticsearch: сбой создания среды выполнения OCI: container_linux.go:344: запуск процесса контейнера, вызванный process_linux.go:424: инициализация контейнера, вызванная \rootfs_linux.go:58: монтирование \ \\/local/home/user/elasticsearch/config/elasticsearch.yml\\\ в rootfs \\\/net/server/.../merged\\\ в \\\/net/server/.../ usr/share/elasticsearch/config/elasticsearch.yml\\\ вызвало \\\не каталог\\\\: unknown: Вы пытаетесь смонтировать каталог в файл (или наоборот)? - person Adam Zarn; 09.09.2020
comment
Кажется, файлы .yml создаются как каталоги, если они еще не существуют. - person Adam Zarn; 09.09.2020