Как установить плагины Elasticsearch с помощью контейнера docker?

Я новичок в Docker, я хочу установить плагины в свой контейнер elasticsearch, в данном случае они:

  • анализ-отделение интенсивной терапии
  • анализ-фонетический

Я знаю, что в традиционном смысле это было бы так:

  • /usr/share/elasticsearch в этом каталоге

sudo bin/elasticsearch-plugin install analysis-icu

sudo bin/elasticsearch-plugin install analysis-phonetic

➜ docker ps   CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                            NAMESf7aaead8fd09        elasticsearch:7.0.1   "/usr/local/bin/dock…"   2 days ago          Up 10 minutes       0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch

Есть какие-нибудь идеи или предложения?

Если вы используете elasticsearch 6, команды для установки плагинов немного отличаются от приведенных в ответе @asktyagi. Поместите это в свой файл Dockerfile

FROM elasticsearch:6.8.3RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu && \     /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-phonetic

Затем

docker build -t elasticsearch .

Если вы используете Dockerfile, попробуйте что-нибудь по ссылке ниже

FROM elasticsearch:2RUN /usr/share/elasticsearch/bin/plugin install --batch <plugin>

После этого вы можете построить

$ docker build -t elasticsearch-aws .

Вот хорошая ссылка https://www.elastic.co/blog/elasticsearch-docker-plugin-management .

Если вы хотите установить плагин непосредственно из docker, выполните следующие действия.

  1. Войдите в docker docker exec -it <id> /bin/bash
  2. Найдите elasticsearch home dir и выполните свою команду для установки плагина.

Но помните, что таким образом это не является постоянным.