一、elasticsearch的Dockerfile
增加中文搜索插件analysis-ik
FROM docker.elastic.co/elasticsearch/elasticsearch:7.2.0 ENV VERSION=7.2.0 # https://github.com/medcl/elasticsearch-analysis-ik/releases ADD https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v${VERSION}/elasticsearch-analysis-ik-$VERSION.zip /tmp/ RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install -b file:///tmp/elasticsearch-analysis-ik-$VERSION.zip RUN rm -rf /tmp/*
二、编写docker-compose.yml
version: '3' services: es01: image: "beng/es:7.2.0" build: . container_name: es01 restart: always volumes: - ./es01/data:/usr/share/elasticsearch/data:rw - ./es01/logs:/user/share/elasticsearch/logs:rw environment: - node.name=es01 - cluster.name=docker-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - discovery.seed_hosts=es02:9300,es03:9300 - cluster.initial_master_nodes=es01,es02,es03 ulimits: memlock: soft: -1 hard: -1 ports: - "9200:9200" - "9300:9300" networks: - esnet es02: image: "beng/es:7.2.0" build: . container_name: es02 restart: always volumes: - ./es02/data:/usr/share/elasticsearch/data:rw - ./es02/logs:/user/share/elasticsearch/logs:rw environment: - node.name=es02 - cluster.name=docker-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - discovery.seed_hosts=es01:9300,es03:9300 - cluster.initial_master_nodes=es01,es02,es03 ulimits: memlock: soft: -1 hard: -1 networks: - esnet es03: image: "beng/es:7.2.0" build: . container_name: es03 restart: always volumes: - ./es03/data:/usr/share/elasticsearch/data:rw - ./es03/logs:/user/share/elasticsearch/logs:rw environment: - node.name=es03 - cluster.name=docker-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - discovery.seed_hosts=es01:9300,es02:9300 - cluster.initial_master_nodes=es01,es02,es03 ulimits: memlock: soft: -1 hard: -1 networks: - esnet kibana: image: docker.elastic.co/kibana/kibana:7.2.0 container_name: kibana ports: - 5601:5601 volumes: - ./kibana/kibana.yml:/usr/share/kibana/config/kibana.yml:rw networks: - esnet networks: esnet:
三、编写kibana配置文件
看到网上很多人将elasticsearch.hosts这些参数直接配置在docker-compose文件里设置environment里面,
但是我在docker-compose文件里设置environment怎样都没有生效(原因没找到),于是直接自己写配置文件,并将配置文件磁盘映射到容器中
# # ** THIS IS AN AUTO-GENERATED FILE ** # # Default Kibana configuration for docker target server.name: kibana server.host: "0" elasticsearch.hosts: [ "http://es01:9200" ] xpack.monitoring.ui.container.elasticsearch.enabled: true i18n.locale: zh-CN