lelelemon’s blog

カメの歩みでのんびり学んでいます。

【トラブルシューティング】Docker起動したElasticSearchのコンテナが起動後少しすると停止する

docker-compose.yml
version: "3"
services:
  es01:
    build: .
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02
      - cluster.initial_master_nodes=es01
      - 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

volumes:
  esdata01:
    driver: local

networks:
  esnet:

 

ElasticSearch をローカル起動して色々検証してみようと思って Docker Compose ファイルを用意し、

docker-compose up -d

で起動したものの、下記のエラーで起動したコンテナが停止していたので、その対処法をまとめました。

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated
in version 9.0 and will likely be removed in a future release.
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low,
increase to at least [262144]

 

対応方法

エラーメッセージの通り、ElasticSearch コンテナに割り当てられるメモリ容量が少なすぎるのが原因のようなので、

 

vi /etc/sysctl.conf

で設定ファイルを開き、

 

 

vm.max_map_count=262144

をファイル末尾に追加して

sudo sysctl -p
で変更を反映する。

その後再度、

docker-compose up -d

でElasticSearchコンテナを起動したら今度は停止せず起動しました。

curl でレスポンスが得られました。

 

curl -X GET http://localhost:9200/
{
  "name" : "es01",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "iGPg2pzlRpKqs6F80SSqDA",
  "version" : {
    "number" : "7.5.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
    "build_date" : "2019-12-16T22:57:37.835892Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}