Docker 上安装 Elasticsearch 5

    在DOCKER中安装Elasticsearch与普通集群上安装基本一致,只是有几个问题需要注意下。

1、Docker容器不能持久保存配置信息与数据,所以需要增加两个卷,数据卷与配置卷:

  在Dockerfile中增加:

    VOLUME ["/usr/local/elasticsearch/config"]
    VOLUME ["/usr/local/elasticsearch/data"]

  在容器启动时通过 -V 参数进行挂载。

  权限问题,容器启动后,会发现挂载的卷只有root用户能读写,其他用户没有权限,所以我们需要在宿主机中创建一个用户,比如 elasticsearch 用户ID为1001(容器中创建的elasticsearch用户ID要与该ID相同),将以上两目录的权限授给它:

    chown -R elastchsearch  /usr/local/elasticsearch

2、启动用户的配置,elasticsearch 不能通过root用户启动,需要创建用户,在dockerfile中:

  RUN useradd -d "/home/elasticsearch" -u 1001 -m -s /bin/bash elasticsearch

     在supervisord.conf文件中配置:    

  [program:elasticsearch]
  user=elasticsearch      --elasticsearch启动用户
  stdout_logfile=/usr/local/elasticsearch/es.log  --elasticsearch启动日志
  environment=JAVA_HOME=/usr/local/jdk       --环境变量
  command=/bin/bash -c "exec ${ES_HOME}/bin/elasticsearch"

3、修改容器中的系统参数,vm.max_map_count。

    在Dockerfile中增加:      

    COPY myinit.sh /bin/myinit.sh
    RUN chmod +x /bin/myinit.sh

    myinit.sh文件内容:     

       echo vm.max_map_count=262144 >> /etc/sysctl.conf
       sysctl -p

   在supervisord.conf中增加:

        [program:myinit.sh]

       stdout_logfile=/myinit.log
       command=/bin/sh /bin/myinit.sh

   在启动容器时,需要加上提升特权参数:--privileged

       

posted @ 2017-05-24 16:01  很多人被命运安排,而我安排命运  阅读(350)  评论(0编辑  收藏  举报