Рубрики
Uncategorized

Установка Elasticsearch в Docker (Ubuntu 18.04)

Информация: Этот пост является одной из статьи в контексте этого поста: Huawei Cloud ECS Server Notes … Tagged с Docker, Es, Elasticsearch, DevOps.

Информация: Этот пост является одной из статьи в контексте этого поста: Huawei Cloud ECS Server Notes

Я установил Es На нашем облачном сервере Huawei Используя Docker прямо сейчас. Это просто, но все еще есть что -то важное, о котором можно знать.

Запустить его в Docker

Создайте сначала мой файл запуска:

touch ~/launchers/docker_es_8881.sh
vi ~/launchers/docker_es_8881.sh

Заполните следующий код в этом файле:

docker rm -f es_docker_8881
docker run -it -d --privileged=true --net bridge-network \
 --name es_docker_8881 \
 -p 8881:9200 \
 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
 -e "discovery.type=single-node" \
 -v /home/jemaloQ/docker/es_8881/elasticsearch:/usr/share/elasticsearch \
 elasticsearch:7.5.2

Затем я попытался запустить контейнер Docker, используя этот файл запуска ( sh ~/launchers/docker_es_8881.sh ), однако запускаемый контейнер всегда находится в выходе (проверьте его, выполнив docker ps -a | grep ES_8881 ).

Таким образом, я попробовал сначала изменить разрешение на доступ каталога отображения:

sudo chmod -R 777 /home/jemaloQ/docker/es_8881/elasticsearch/

Однако у меня все еще была такая же проблема.

Затем я попытался запустить его без отображения папок, используя следующую линию CMD:

docker rm -f es_docker_8881
docker run -it -d --privileged=true --net bridge-network  --name es_docker_8881  -p 8881:9200  -e ES_JAVA_OPTS="-Xms256m -Xmx256m"  -e "discovery.type=single-node"  -v elasticsearch:7.5.2

Теперь контейнер начал работать. Поэтому я скопировал его контент в папку с отображением в хост -машине:

docker cp es_docker_8881:/usr/share/elasticsearch/ /home/jemaloQ/docker/es_8881/elasticsearch

Затем я попытался снова запустить контейнер Docker, используя наш файл запуска ( sh ~/launchers/docker_es_8881.sh ), на этот раз он работает.

Настройка пароля ES

По умолчанию база данных ES не защищена паролем. Сначала нужно включить функцию Xpack.

sudo vi /home/jemaloQ/docker/es_8881/elasticsearch/config/elasticsearch.yml

Добавьте следующие строки в этот файл конфигурации и сохраните

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

Теперь перезапускайте наш контейнер. Затем введите внутренний удар контейнера и настройте пароль

sudo docker exec -it es_docker_8881 /bin/bash
cd bin/
./elasticsearch-setup-passwords interactive

Затем настройте серию паролей в интерактивном режиме:

Подключить ES через Python

Теперь протестируйте нашу базу данных ElasticSearch в Python:

from elasticsearch import Elasticsearch

#es = Elasticsearch('IP:9200')
#es = Elasticsearch('http://host:9200')
es = Elasticsearch('http://111.22.233.177:8881',http_auth=("elastic", "123456"))


es.indices.get_alias()

Оно работает!

Оригинал: «https://dev.to/jemaloqiu/installation-of-elasticsearch-in-docker-ubuntu-18-04-34i8»