Информация: Этот пост является одной из статьи в контексте этого поста: 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»