寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

ElasticsearchをDocker(compose)で気軽に起動してみる

f:id:chidakiyo:20200127192442j:plain

Elasticsearchの振る舞いを気軽に確認したい場合、Docker(compose)で環境を作成すると非常に便利そうだったので、Macのローカルでdocker-composeで動くElasticsearchを構築してみた。

Dockerfile を作成する

ElasticsearchサーバのDockerのイメージを作成する。
日本語を利用する場合には kuromoji をインストールしたほうが良いのでインストールまで行う。

日本語を利用しない場合にはこのコンテナを作成するステップは不要かと思う。

FROM docker.elastic.co/elasticsearch/elasticsearch:7.5.1
RUN elasticsearch-plugin install analysis-kuromoji

docker-compose.yml を作成する

以下のようなファイルを docker-compose.yml というファイル名で作成する

version: '3'
services:
  es01:
    build: .
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  es02:
    build: .
    container_name: es02
    environment:
      - node.name=es02
      - discovery.seed_hosts=es01
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata02:/usr/share/elasticsearch/data
    networks:
      - esnet

volumes:
  esdata01:
    driver: local
  esdata02:
    driver: local

networks:
  esnet:

container を build する

composeファイルがあると以下のコマンドでbuildできる

docker-compose build

Elasticsearch クラスタを起動する

以下のコマンドで起動

docker-compose up -d

done のような表示が出ればok。

curl経由で動作確認をする

Elasticsearch は 9200 番ポートで起動している。

動作確認のため、以下のようなコマンドを実行する

curl -X GET http://localhost:9200/

エラーにならず、jsonのレスポンスが返ってくれば成功。

かんたんですね

おまけ

docker-composeを停止する場合には

停止(消さない)

docker-compose down

停止(きれいに消す)

docker-compose down --rmi all

でok.