• 使用DockerCompose搭建部署ElasticSearch


    说明

    由于我本机配置较低,无法开启多台虚拟机,ES的集群需要用到不同的ip,故而只搭建单机,不做集群。

    一、目录准备

    mkdir /docker/es
    mkdir /docker/es/data
    mkdir /docker/es/config
    mkdir /docker/es/plugins
    

    二、es配置准备

    cd /docker/es
    vi elasticsearch.yml
    

    使用以下配置:

    # 集群名称
    cluster.name: elasticsearch-cluster
    # 节点名称
    node.name: es-node-1
    # 绑定host,0.0.0.0代表当前节点的ip
    network.host: 0.0.0.0
    # 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip)
    network.publish_host: 192.168.200.135
    # 设置对外服务的http端口,默认为9200
    http.port: 9200
    # 设置节点间交互的tcp端口,默认是9300
    transport.tcp.port: 9300
    # 是否支持跨域,默认为false
    http.cors.enabled: true
    # 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?://localhost(:[0-9]+)?/
    http.cors.allow-origin: "*"
    # 表示这个节点是否可以充当主节点
    node.master: true
    # 是否充当数据节点
    node.data: true
    # 所有主从节点ip:port
    #discovery.seed_hosts: ["192.168.200.135:9300"]  #本地只有一个节点,无法正常启动,先注释
    # 这个参数决定了在选主过程中需要 有多少个节点通信  预防脑裂 N/2+1
    discovery.zen.minimum_master_nodes: 1
    #初始化主节点
    #cluster.initial_master_nodes: ["es-node-1"]  #本地只有一个节点,无法正常启动,先注释
    

    三、准备docker-compose.yml

    vi docker-compose.yml
    

    内容如下:

    version: '3'
    
    services:
     elasticsearch:
      image: elasticsearch:6.8.13
      restart: always  
      hostname: es1
      container_name: es-single
      volumes:
       - /docker/es/data:/usr/share/elasticsearch/data
       - /docker/es/plugins:/usr/share/elasticsearch/plugins
       - /docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      environment:
       - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
       - discovery.type=single-node
      ports:
        - '9200:9200'     #java、集群通信端口
        - '9300:9300'     #http通信端口
      privileged: true    #环境变量
    

    四、启动容器
    docker-compose up -d

    五、查看

    docker-compose ps
    

    如果启动是吧,可以使用docker container logs 容器id/es-single logs 查看启动日志

    参考:docker部署redis/mongodb/rabbitmq中的es小节
    如果出现启动日志中出现java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes,需要给data目录设置权限 chmod 777 /docker/es/data

  • 相关阅读:
    Headless MSBuild Support for SSDT (*.sqlproj) Projects
    dbDacFx Provider for Incremental Database publishing
    Cannot spawn... TortoisePlink
    Windows server 2012同时进行多个会话登陆的策略设置
    Workspace Cloning / Sharing in Jenkins
    How to change Jenkins default folder on Windows?
    使用Jenkins配置自动化构建
    Auto push git tag
    Azure Deploy
    sql server中index的REBUILD和REORGANIZE
  • 原文地址:https://www.cnblogs.com/wugang/p/14493031.html
Copyright © 2020-2023  润新知