您的位置:

Docker Compose Elasticsearch详解

一、Elasticsearch简介

Elasticsearch是一个开源分布式搜索和分析引擎。它被用于各种用例,例如应用程序搜索、日志分析及安全分析等。Elasticsearch基于Lucene搜索引擎库构建,提供了全文搜索、结构化搜索、分面搜索以及文本分析等功能。

二、Docker Compose概览

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过使用Docker Compose可以轻松地定义和管理应用程序的各种服务,它可以自动构建并启动所有应用程序的依赖关系。Docker Compose可以简化开发、测试和部署处理。

三、Docker Compose Elasticsearch

Docker Compose Elasticsearch 是一种容器化的 Elasticsearch 配置方案。它使用 Docker Compose 创建和管理 Docker 镜像,并在 Docker 容器中运行 Elasticsearch。使用它可以轻松地创建 Elasticsearch 集群、进行分布式搜索以及实时分析等操作。

四、安装Docker Compose Elasticsearch

首先,要安装 Docker 和 Docker Compose。可以按照官方文档进行安装。安装完成后,需在Docker Compose文件中定义Elasticsearch服务。

五、定义Docker Compose文件

以下是一个简单的Docker Compose文件,用于在容器中启动Elasticsearch服务:

version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200
      - 9300:9300

本示例定义了一个名为“elasticsearch”的服务,使用了Elasticsearch官方的镜像。环境变量“discovery.type=single-node”表示该服务是单节点部署,请注意这个配置项的格式;然后定义了两个映射端口用于访问Elasticsearch服务。

六、启动Docker Compose Elasticsearch服务

要启动该服务,只需在命令行中进入到Docker Compose文件所在目录,然后运行以下命令:

docker-compose up -d

该命令会自动构建、启动并运行一个名为“elasticsearch”的容器。

七、访问Elasticsearch服务

启动完成后,就可以通过浏览器访问该服务。 在浏览器地址栏中输入:http://localhost:9200。如果一切正常,将看到以下输出:

{
  "name" : "elasticsearch",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "hHxFNMRwRxavCJHx0jUJkA",
  "version" : {
    "number" : "7.15.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "79d65f6e357953a5e35cb43e1bdc3c85960b232b",
    "build_date" : "2021-09-16T03:05:29.143308416Z",
    "build_snapshot" : false,
    "lucene_version" : "8.9.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

八、添加其他服务

可以在同一个Docker Compose文件中添加其他服务,如Kibana服务,以实现更多的使用场景。以下示例演示如何使用 Docker Compose 运行 Elasticsearch 和 Kibana:

version: "2.2"
services:
  elasticsearch:
    container_name: elasticsearch
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
    environment:
      - discovery.type=single-node
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "9200:9200"
    volumes:
      - esdata1:/usr/share/elasticsearch/data

  kibana:
    container_name: kibana
    image: docker.elastic.co/kibana/kibana:7.15.0
    ports:
      - "5601:5601"
    environment:
      ELASTICSEARCH_URL: http://elasticsearch:9200
      ELASTICSEARCH_HOSTS: http://elasticsearch:9200
    depends_on:
      - elasticsearch

volumes:
  esdata1:
    driver: local

该示例中,我们除了elasticsearch服务外还添加了kibana服务,kibana是一个用于可视化管理Elasticsearch数据和分析的Web界面,该服务需要依赖于elasticsearch服务。

九、总结

本文介绍了如何使用Docker Compose配置Elasticsearch服务,并演示了如何添加kibana服务进行管理和分析。通过Docker Compose,我们可以轻松地创建和管理多个Docker容器,实现了分布式搜索和分析。