1、Dockerfile

Dockerfile 是构建 Docker 镜像的文件,它指定了容器内部的环境及应用程序如何被构建。Elasticsearch 官方提供了一个 Dockerfile,用于构建 Elasticsearch 镜像,具体内容如下:

FROM docker.elastic.co/elasticsearch/elasticsearch:7.7.0

# Add your elasticsearch plugins setup here
# Example: RUN elasticsearch-plugin install analysis-icu

COPY config/elasticsearch.yml config/elasticsearch.yml

USER root
RUN chown elasticsearch:elasticsearch config/elasticsearch.yml
USER elasticsearch
Docker

2、启动方法

启动 Elasticsearch 需要使用 docker-compose 命令,具体内容如下:

version: '3.6'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9300:9300
    networks:
      - esnet

volumes:
  esdata1:
    driver: local

networks:
  esnet:
Docker

通过 docker-compose.yml 文件,可以创建一个名为 docker-cluster 的集群,并将其绑定到宿主机的 9200 端口和 9300 端口。可以使用 docker-compose up -d 命令启动 Elasticsearch 容器,然后使用 curl 命令检查 Elasticsearch 是否正常工作:

$ curl -XGET 'localhost:9200/_cat/health?v'

1593164545 13:15:45 docker-cluster green 1 1 0 0 0 0 0 0 - 100.0%
Bash

从输出中可以看到,Elasticsearch 集群的状态是 green,表示已经正常启动。