[Docker] La forma correcta de instalar el servicio Elasticsearch con Docker


点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情)

1. ¿Qué es Elasticsearch?

Elaticsearch, conocido como es, es un motor de búsqueda de texto completo distribuido altamente escalable y de código abierto que puede almacenar y recuperar datos casi en tiempo real, tiene buena escalabilidad y se puede expandir a cientos de servidores para procesar datos a nivel PB. . es también está desarrollado en Java y utiliza Lucene como núcleo para implementar todas las funciones de indexación y búsqueda, pero su propósito es ocultar la complejidad de Lucene a través de una API RESTful simple para simplificar la búsqueda de texto completo.

2. Docker instala Elasticsearch

¡Lo más importante al instalar Elasticsearch es determinar la versión de Elasticsearch! Determine la versión de Elasticsearch de acuerdo con su proyecto Spring Boot. Otros servicios relacionados con es deben ser consistentes con la versión es durante la instalación. ¡Cómo determinar la versión de Elasticsearch es el tema central de este artículo! Versión, versión, versión, ¡di cosas importantes tres veces!

2.1 Determinar la versión de Elasticsearch

La compatibilidad de la versión es muy importante al integrar el proyecto Spring Boot con es . Las versiones incompatibles causarán errores inesperados o conducirán directamente a la inutilización, por lo que la versión debe determinarse antes de instalar es. Compatibilidad de versiones Consulta la matriz de compatibilidad oficial . Los detalles son los siguientes:

Tome la figura anterior como ejemplo: supongamos que la versión de nuestro proyecto Spring Boot es 2.1.x, entonces la versión mínima de es requerida es 6.2.2. Tenga en cuenta que es la versión mínima. Si aún no se puede usar normalmente durante Durante las pruebas, es necesario modificar la versión de es a 6.2.2, pero preferiblemente sin exceder los límites de la versión anterior (6.8.12 en la tabla anterior).

El autor descubrió que la versión Spring Boot del proyecto es 2.1.3.RELEASE. De acuerdo con los requisitos de compatibilidad, se utilizó es 6.2.2. Después de la instalación, se descubrió que no solo el proyecto Spring Boot no podía iniciarse normalmente, sino que Además, la versión 6.2.2 no tenía una versión correspondiente, la palabra china segmentador IKAnalyzer corresponde a ella, por lo que se volvió normal después de ajustarse a la 6.6.2 adyacente.

2.2 Instalación Docker de Elasticsearch

Tome la versión 6.6.2 de Elasticsearch como ejemplo:

  • Instalar Elasticsearch
# 注意下:Elasticsearch的Docker镜像是Elasticsearch官方自己维护的
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
-d "docker.elastic.co/elasticsearch/elasticsearch:6.6.2"

Nota: la imagen de Docker de es es mantenida oficialmente por el propio es.Referencia oficial de instalación de Docker es

  • Ver registros de contenedores:
docker logs -f elasticsearch
  • Si el acceso devolverá información de la versión: http://localhost:9200

2.3 Instale el segmentador de palabras chinas IKAnalyzer para Elasticsearch (opcional)

Tome la versión 6.6.2 de Elasticsearch como ejemplo:

  • Descargue el segmentador de palabras chino IKAnalyzer, preste atención para descargar la versión correspondiente a es, dirección de descarga: https://github.com/medcl/elasticsearch-analysis-ik/releases

  • Copie el paquete de instalación a un directorio específico del contenedor/usr/share/elasticsearch
docker cp elasticsearch-analysis-ik-6.6.2.zip elasticsearch:/usr/share/elasticsearch
  • Descomprímalo en /usr/share/elasticsearch/pluginsel directorio del contenedor es.

Preste atención a la estructura del directorio, no tenga un directorio más o menos

  • Reinicie el servicio:
docker restart elasticsearch
  • Verifique los registros nuevamente y visite http://localhost:9200
docker logs -f elasticsearch

Supongo que te gusta

Origin blog.csdn.net/yuchangyuan5237/article/details/132014872
Recomendado
Clasificación