docker-compose安装Elasticsearch,ik分词器,安装对应es的kibana

Docker-compose 下安装es

mkdir es
cd es
mkdir data 
mkdir plugins
# 需要给这两个文件夹赋予权限,否则会导致权限不够的问题,导致启动失败
chmod 777 data
chmod 777 plugins/
在es文件夹中创建docker-compose.yaml文件
vim docker-compose.yml

填入如下配置

version: '3'
services:
  elasticsearch:
    image: elasticsearch:7.7.0  #镜像
    container_name: elk_elasticsearch  #定义容器名称
    restart: always  #开机启动,失败也会一直重启
    environment:
      - "cluster.name=elasticsearch" #设置集群名称为elasticsearch
      - "discovery.type=single-node" #以单一节点模式启动
      - "ES_JAVA_OPTS=-Xms512m -Xmx1024m" #设置使用jvm内存大小
    volumes:
      - ./plugins:/usr/share/elasticsearch/plugins #插件文件挂载
      - ./data:/usr/share/elasticsearch/data #数据文件挂载
    ports:
      - 9200:9200
      - 9201:9201

运行 docker-compose 命令: docker-compose up -d,能访问192.168.0.13:9200就成功了

安装ik分词器

# 进入 es 容器:
docker exec -it elk_elasticsearch /bin/bash
cd bin
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip

安装对应es的kibana

cd home/docker/kibana
mkdir kibana
vim kibana.yml
//输入内容为
  server.name: kibana
# kibana的主机地址 0.0.0.0可表示监听所有IP
server.host: "0.0.0.0"
# kibana访问es的URL
elasticsearch.hosts: [ "http://192.168.0.13:9200" ]
elasticsearch.username: 'kibana'
elasticsearch.password: '123456'
# 显示登陆页面
xpack.monitoring.ui.container.elasticsearch.enabled: true
# 语言
#i18n.locale: "zh-CN"
  
//创建docker-compose.yaml文件
version: '3'
services:
 kibana:
  image: kibana:7.7.0 # 与 es 版本对应
  restart: always
  container_name: kibana
  volumes:
   - /home/docker/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
  ports:
    - '5601:5601'     #java、集群通信端口
  privileged: true    #环境变量

~                                                                                                                                                                                        
~                                                
//运行  docker-compose up -d,访问192.168.0.13:5601成功访问页面

### 使用 Docker Compose 安装 Elasticsearch 的方法及示例配置 #### 配置文件说明 `docker-compose.yml` 是用于定义服务及其依赖关系的核心文件。以下是基于 Elasticsearch 7.8.0 版本的一个典型 `docker-compose.yml` 文件示例: ```yaml version: '3.7' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0 container_name: es01 environment: - node.name=es01 - cluster.name=es-docker-cluster - discovery.type=single-node - bootstrap.memory_lock=true - ES_JAVA_OPTS=-Xms512m -Xmx512m ulimits: memlock: soft: -1 hard: -1 volumes: - esdata01:/usr/share/elasticsearch/data ports: - "9200:9200" - "9300:9300" networks: - elastic volumes: esdata01: driver: local networks: elastic: driver: bridge ``` 此配置文件创建了一个单节点的 Elasticsearch 实例,并暴露了 HTTP(9200)和 TCP(9300)端口[^2]。 --- #### 安装 IK 分词器的过程 为了增强中文处理能力,可以安装 IK 分词器插件。具体过程如下: 1. **进入容器** 使用以下命令进入运行中的 Elasticsearch 容器: ```bash docker exec -it es01 bash ``` 2. **安装 IK 分词器** 在容器内部执行以下命令来安装对应版本的 IK 分词器插件: ```bash elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip ``` 如果网络环境较差,建议先手动下载插件并将其复制到容器中[^3]。 3. **重启容器** 完成插件安装后,需重启容器使更改生效: ```bash docker restart es01 ``` --- #### ELK Stack 的扩展部署 如果需要进一步集成 Logstash 和 Kibana,则可以在同一 `docker-compose.yml` 文件中添加它们的服务定义。例如: ```yaml logstash: image: docker.elastic.co/logstash/logstash:7.8.0 container_name: logstash volumes: - ./config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf ports: - "5044:5044" - "9600:9600" kibana: image: docker.elastic.co/kibana/kibana:7.8.0 container_name: kibana ports: - "5601:5601" environment: - ELASTICSEARCH_URL=http://es01:9200 depends_on: - es01 ``` 上述配置将启动 Logstash 和 Kibana 服务,并分别绑定至指定端口。 --- #### 注意事项 - 确保主机有足够的资源分配给容器,尤其是内存设置 (`ES_JAVA_OPTS`)。 - 对于生产环境,应调整为多节点集群模式以提高可用性和性能[^1]。 - 若遇到权限或存储问题,可检查挂载卷的读写权限以及磁盘空间情况。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值