Docker快速部署ElasticSearch的方案

发布于:5/9/2019, 6:13:48 PM @孙博
技术分享 | Docker,ElasticSearch
许可协议:署名-非商业性使用(by-nc)

近期由于工作需要与团队小伙伴一起深入学习了ES相关的一些技巧,于是也在寻求快速搭建实验环境的方案,为了能尽可能减少对开发环境的影响,也尽可能的不去依赖环境,于是准备将ES实验环境部署在Docker中。

对于实验环境有几点要求:

  • 容易部署
  • 自带Kibana
  • 无痕卸载

基于这几个条件,写了一个简单的 docker-compose.yml 文件。

网络选择从外部创建是因为方便开放API给其他容器使用,不需要的小伙伴也可以改成随容器自动创建的。

version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 9200:9200
    networks:
      - esnet
  kibana:
    image: docker.elastic.co/kibana/kibana:6.5.1
    container_name: kibana
    ports:
      - '5601:5601'
    depends_on:
      - elasticsearch
    networks:
      - esnet
    external_links:
      - elasticsearch
networks:
  esnet:
    external: true

使用 docker-compose up -d 启动时发现 elasticsearch一直都启动不起来,查看LOG [docker logs elasticsearch] 发现如下报错:

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

参考网上一些解决方案后,在Docker宿主机执行命令sysctl -w vm.max_map_count=262144临时修改了值,然后再次运行docker start elasticsearch启动成功,由此便可以愉快的玩耍了。

前一篇:Hello World
后一篇:技术选型 TypeScript