接上~
这一节,我们要构建一个Elasticsearch的镜像,没错,就是下面这个货。
下载
去官网下载一个Elasticsearch,传送门:https://www.elastic.co/downloads
下载tar包,解压到tools目录下,修改elasticsearch-5.4.0-->config文件夹下elasticsearch.yml
文件中
# 这样配置才可以通过其它主机访问
network.host: 0.0.0.0
# 日志存放在挂载的目录
path.logs: /opt/product/data/logs
如果需要安装head访问,则需要添加下面两个参数,允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
其它参数稍后研究。
Dockerfile
FROM elkbase:v1.0
MAINTAINER Luomeng
VOLUME [ "/opt/product/data/" ]
ADD ./elasticsearch-5.4.0 /opt/product/elasticsearch-5.4.0
ADD init.sh /root/
RUN useradd elk && chown -R elk:elk /opt/product/elasticsearch-5.4.0
EXPOSE 9200
EXPOSE 9300
RUN chmod +x /root/init.sh
ENTRYPOINT ["/root/init.sh"]
CMD ["/usr/sbin/init"]
init.sh
用于在容器启动后执行Elasticsearch启动文件
#!/bin/bash
echo "I am in!!!"
su - elk <<!
export JAVA_HOME=/opt/product/tools/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
/opt/product/elasticsearch-5.4.0/bin/elasticsearch
构建镜像
docker build -t elasticsearch:v1.0 .
#注意最后有一个“.”
启动容器
docker run --privileged -ti -v /Users/Luomeng/DockerProject/Elasticsearch/data:/opt/product/data -p 9200:9200 -p 9300:9300 elasticsearch:v1.0 /bin/bash
查看启动日志,没问题后可以用以下命令后台启动:
docker run --privileged --restart=always -d -ti -v /Users/Luomeng/DockerProject/Elasticsearch/data:/opt/product/data -p 9200:9200 -p 9300:9300 elasticsearch:v1.0 /bin/bash
Test
浏览器中输入http://ip:9200
如果出现json串,说明安装成功。
官方安装方式也有docker安装:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docker.html
有兴趣的同学可以研究下。