使用Docker在多台计算机上设置Elasticsearch集群

时间:2018-06-07 20:59:25

标签: docker elasticsearch docker-compose docker-swarm

我目前尝试使用docker-compose来启动多个elasticsearch容器,但这些容器都部署在我的本地计算机上。使用Docker将多个容器部署到多个不同的计算机的过程是什么?

我知道docker swarm存在,但我不确定如何利用它与docker compose一起使用,这样我就可以启动位于我已经旋转的不同虚拟机中的多个elasticsearch节点。

到目前为止,我知道在elasticsearch.yml配置文件中我需要指定虚拟机地址 discovery.zen.ping.unicast.hosts: ["vm_ip1:9200", "vm_ip2:9200"]但我不确定如何在创建的docker容器上强制执行此更改。为了启动容器,我使用了elasticsearch docs

中显示的示例docker-compose.yml文件
version: '2.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
    container_name: elasticsearch
    environment:
      - cluster.name=elasticsearch
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
    container_name: elasticsearch2
    environment:
      - cluster.name=elasticsearchr
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
      - "index.number_of_shards: 2"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata2:/usr/share/elasticsearch/data
    networks:

如果需要更多细节,请告诉我,谢谢!

0 个答案:

没有答案