docker安装elasticsearch

1.拉取es docker镜像,地址:https://www.docker.elastic.co/r/elasticsearch/elasticsearch

   ES docker安装参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

   ES参数配置:https://www.cnblogs.com/aqicheng/p/14262484.html

2.ES单节点群集,docker-compose.yml内容如下:

version: '3'
services:
  watchad_elasticsearch7:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
    container_name: es7
    hostname: es7
    environment:
      http.host: 0.0.0.0
      transport.host: 127.0.0.1
      cluster.name: docker-cluster
      bootstrap.memory_lock: "true"
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"   #设置占用内存大小 -Xms2g -Xmx2g
      thread_pool.write.size: 9     #设置写入线程数量及队列大小
      thread_pool.write.queue_size: 1000
      xpack.security.enabled: "false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    ports:
      - "9201:9200"
    networks:
      - watchad-master_default
    restart: always

networks:
  watchad-master_default:
    external: true

 

3.ES多节节点群集,docker-compose.yml内容如下:

 

version: '3'
services:
  watchad_elasticsearch7_01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
    container_name: es701
    hostname: es701
    environment:
      node.name: es701
      cluster.name: es-cluster
      discovery.seed_hosts: es702
      cluster.initial_master_nodes: es701,es702
      bootstrap.memory_lock: "true"
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
      thread_pool.write.size: 9
      thread_pool.write.queue_size: 1000
      xpack.security.enabled: "false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
     - es701_data:/usr/share/elasticsearch/data
    ports:
      - "9201:9200"
    restart: always

  watchad_elasticsearch7_02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
    container_name: es702
    hostname: es702
    environment:
      node.name: es702
      cluster.name: es-cluster
      discovery.seed_hosts: es701
      cluster.initial_master_nodes: es701,es702
      bootstrap.memory_lock: "true"
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
      thread_pool.write.size: 9
      thread_pool.write.queue_size: 1000
      xpack.security.enabled: "false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
     - es702_data:/usr/share/elasticsearch/data
    restart: always

volumes:
  es701_data:
  es702_data:

networks:
  default:
    external:
      name: watchad-master_default
#此处使用的桥接网络,es各节点之间互相解析,实际是通过container_name进行的解析,所以container_name和node.name必须要保持一致

如果在docker-compose up后出现如下报错,处理方式:

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

vi /etc/sysctl.conf,添加如下内容:

  vm.max_map_count=262144

然后 sysctl -p重新载入该文件生效

启动后访问:http://192.168.120.27:9201/_cat/health?v 可以看到有2个节点

 

docker host模式安装ES群集:

注:host模式共享主机网卡,-p绑定端口是无效的

version: '3'
services:
  watchad_elasticsearch7_01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
    container_name: es701
    hostname: es701
    environment:
      node.name: es701
      cluster.name: docker-cluster
      http.port: 9201
      transport.tcp.port: 9301
      http.cors.enabled: "true"   #开启跨站访问
      http.cors.allow-origin: "*"  #设置跨站来源
      discovery.zen.ping.unicast.hosts: 192.168.120.27:9301, 192.168.120.27:9302  #发现其他节点
      discovery.zen.minimum_master_nodes: 1 #设置最小主节点个数,防止脑裂
      bootstrap.memory_lock: "true"
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
      thread_pool.write.size: 9
      thread_pool.write.queue_size: 1000
      xpack.security.enabled: "false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
     - es701_data:/usr/share/elasticsearch/data
    network_mode: "host"
    restart: always

  watchad_elasticsearch7_02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
    container_name: es702
    hostname: es702
    environment:
      node.name: es702
      cluster.name: docker-cluster
      http.port: 9202
      transport.tcp.port: 9302
      http.cors.enabled: "true"
      http.cors.allow-origin: "*"
      discovery.zen.ping.unicast.hosts: 192.168.120.27:9301, 192.168.120.27:9302
      discovery.zen.minimum_master_nodes: 1
      bootstrap.memory_lock: "true"
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
      thread_pool.write.size: 9
      thread_pool.write.queue_size: 1000
      xpack.security.enabled: "false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
     - es702_data:/usr/share/elasticsearch/data
    network_mode: "host"
    restart: always

volumes:
  es701_data:
  es702_data:

 

posted on 2021-09-28 11:21  momingliu11  阅读(284)  评论(0编辑  收藏  举报