在docker环境里启动Elasticsearch 与 Elasticsearch-head

一忙起来就没动力更新,勉强凑一篇

用处和背景

单机开发和测试用途,小搜索引擎

Elasticsearch 网上的资料多数是ELK的搭配,用来处理日志是不错,但其他用途的就极少了,Elasticsearch-head这个软件都两三年没更新了,很是周折了一番

docker怎么装就不废话了,docker官方网站上很多,记得linux要单独安装docker-compose

镜像下载

docker pull elasticsearch:7.4.2

docker pull mobz/elasticsearch-head:5

注意要带上版本号,elasticsearch的镜像没有latest 的tag,而且不同版本还是有差距的

docker-compose配置

用docker run命令也是可以的,就是有点长。docker-compose的方便之处就在这里了

docker-compose.yml的版本号不要随便改。

下面的配置同时设置了服务名、主机名、网络别名和容器名,不是必须一致的,服务名只影响docker命令行,搞不清楚就把其他几个都设成一样。

version: "2.3"
networks:
  devel:
    driver: overlay
      
services:
  es:
    hostname: elasticsearch
    container_name: es
    networks:
      devel:
        aliases:
          - es
          - elasticsearch
    image: "elasticsearch:7.4.2"
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - "9200:9200/tcp"
      - "9300:9300/tcp"

  eshead:    
    hostname: eshead
    container_name: eshead
    networks:
      devel:
        aliases:
          - eshead
    image: "mobz/elasticsearch-head:5"
    ports:
      - "9100:9100/tcp"

修改elasticsearch.yml

在docker-compose.yml的同一目录下,再创建一个elasticsearch.yml

对应的是docker-compose.yml里的volume设定
这个配置主要是让es工作在单节点方式下,并且在所有来源上启用CORS。
不启用的话Elasticsearch-head工作不正常

cluster.name: "docker-cluster"
network.host: 0.0.0.0
discovery.type: single-node
http.cors.enabled: true
http.cors.allow-origin: '*'
http.host: 0.0.0.0

启动检查

地址栏里输入localhost:9100 这个是Elasticsearch-head的前端地址

顺利的话可以看到如下页面。
在docker环境里启动Elasticsearch 与 Elasticsearch-head_第1张图片
如果看不到这个页面,说明Elasticsearch-head没启动成功,这比较少发生。

如果看到这个页面,但集群健康值那个地方显示是红的,说明Elasticsearch服务没连上,可以试一下docker logs elasticsearch 检查日志

你可能感兴趣的:(kube容万物,docker卷一切)