Я запускаю elasticsearch через файл докеров, найденный здесь:
https://index.docker.io/u/ehazlett/elasticsearch/
Отлично работает. Мне нужно определить свои собственные хосты, поскольку моя среда не поддерживает многоадресную рассылку.
Я понимаю, что у меня есть следующие варианты:
1) предоставлять хосты, когда elasticsearch запускается как параметр командной строки
2) измените мой файл elasticsearch.yml, чтобы установить хосты.
Я знаю, как создать yml, мне нужно знать, как запустить elasticsearch через докер, используя мой собственный yml вместо того, который находится в контейнере. Это возможно?
Спасибо.
Вы можете указать elasticsearch.yml с параметром «-Des.config».
Например:
elasticsearch -Des.config=/path/to/elasticsearch.yml
Или в вашем Dockerfile:
CMD ["/usr/share/elasticsearch/bin/elasticsearch", "-Des.config=/path/to/elasticsearch.yml"]
С другой стороны, чтобы добавить собственную конфигурацию elasticsearch в контейнер, у вас есть возможность создать собственный образ.
Создать собственный образ очень просто, если вы знакомы с Dockerfile, вам нужно сделать всего несколько вещей:
FROM base/elasticsearchimage
ADD elasticsearch.yml /path/to/conf/elasticsearch.yml
CMD ["/usr/share/elasticsearch/bin/elasticsearch", "-Des.config=/path/to/conf/elasticsearch.yml"]
Поместите Dockerfile и elasticsearch.yml в одну папку и выполните следующую команду:
В Linux:
sudo docker build -t username/elasticsearch.
Windows (через boot2docker):
docker build -t username/elasticsearch .
И после успешной сборки выполните:
docker run -d --name containername username/elasticsearch
Благодаря этому вы сделаете конфигурацию всегда доступной для ваших новых контейнеров, что также снизит усилия по созданию кластера.
Скопируйте пользовательский файл yml в каталог конфигурации ES в файле Dockerfile, поместите файл yml в тот же каталог с файлом Dockerfile и создайте образ.
FROM docker.elastic.co/elasticsearch/elasticsearch:7.6.2
COPY --chown=elasticsearch:elasticsearch ./elasticsearch.yml /usr/share/elasticsearch/config/
Можно было найти больше Вот