Docker-compose搭建ELK+head+redis环境(2)-- head插件安装

在上一篇,讲了Docker环境下,elasticsearch安装,本章节介绍Docker下Header插件安装。

(一)、拉取镜像

下一个elasticsearch-head的镜像

docker pull mobz/elasticsearch-head:5

(二)、修改配置

然后修改Gruntfile.js和app.js两个配置文件。用Docker部署head插件很容易犯一个错误,对于配置文件我往往是在宿主机建立对应文件,然后把Docker对应文件映射到宿主机对应文件。然后配置文件直接拿网上的代码贴上去。但是我看了几个head的教程,都没说明只是贴了Gruntfile.js和app.js两个配置文件的代码片段,包括我后面的贴的,也只是代码片段。

正确的操作是,你下一个elasticsearch-head的包,或者到容器里面,把Gruntfile.js和app.js复制出来,然后再修改。

宿主机和容器之间的复制命令为:

docker cp host_path containerID:container_path  --从主机复制到容器
docker cp containerID:container_path host_path --从容器复制到主机

Gruntfile.js修改以下片段,

 connect: {
            server: {
                options: {
                    /* 默认监控:127.0.0.1,修改为:0.0.0.0 */
                    hostname: '0.0.0.0',
                    port: 9100,
                    base: '.',
                    keepalive: true
                }
            }

app.js修改以下代码片段:

/* 修改localhost为elasticsearch集群地址,Docker部署中,一般是elasticsearch宿主机地址 */
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";

(三)、启动容器

可以通过命令启动容器:

docker run -d --name head -p 9100:9100  -v /data/elasticsearch/head/Gruntfile.js:/usr/src/app/Gruntfile.js -v /data/elasticsearch/head/app.js:/usr/src/app/_site/app.js mobz/elasticsearch-head:5

也可以放在docker-compose.yml一起启动:

version: '2.0'
services:
    elasticsearch-central:
        image: elasticsearch:5.6.4
        container_name: es1
        volumes:
           - /data/elasticsearch/data:/usr/share/elasticsearch/data
           - /data/elasticsearch/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
        environment:
           - ES_CLUSTERNAME=elasticsearch
        command: elasticsearch
        ports:
           - "9200:9200"
           - "9300:9300"
    elasticsearch-data:
        image: elasticsearch:5.6.4
        container_name: es2
        volumes:
           - /data/elasticsearch/data2:/usr/share/elasticsearch/data
           - /data/elasticsearch/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
        environment:
           - ES_CLUSTERNAME=elasticsearch
        command: elasticsearch
        ports:
           - "9201:9200"
           - "9301:9300"
        links:
           - elasticsearch-central:elasticsearch
    elasticsearch-head:
        image: mobz/elasticsearch-head:5
        container_name: head
        volumes:
           - /data/elasticsearch/head/Gruntfile.js:/usr/src/app/Gruntfile.js
           - /data/elasticsearch/head/app.js:/usr/src/app/_site/app.js        
        ports:
           - "9100:9100"           
        links:
           - elasticsearch-central:elasticsearch

(四)、查看head集群状态

http://192.168.3.140:9100/

这里写图片描述

猜你喜欢

转载自blog.csdn.net/mozf881/article/details/79705781