docker-compose 安装elasticsearch

安装版本 elasticsearch 8.14.1

拉取镜像

docker pull elasticsearch:8.14.1

如需安装kibana 需要拉取对应版本的kibana镜像

docker pull kibana:8.14.1

查看镜像是否安装成功

docker images

配置docker-compose.yaml

version: '3'
services:
  es:
    # 镜像名称
    image: elasticsearch:8.14.1
    # 容器名称
    container_name: es
    networks:
      - elastic
    # 端口映射
    ports:
      - "9200:9200"
      - "9300:9300"
    # 文件映射
    volumes:
      - ./data:/usr/share/elasticsearch/data # 数据
      - ./logs:/usr/share/elasticsearch/logs # 日志
      - ./plugins:/usr/share/elasticsearch/plugins # 插件
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 配置文件
    # 环境配置
    environment:
      - "TZ=Asia/Shanghai"
      - "discovery.type=single-node" # 单节点
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g" # 内存限制(按需配置)
      - "ELASTIC_PASSWORD=123456" # 密码(需要调用接口鉴权的时候配置)  用户名:elastic 密码:123456
  kibana:
    image: kibana:8.14.1
    container_name: kibana
    networks:
      - elastic
    ports:
      - "5601:5601"
    environment:
      - "I18N_LOCALE=zh-CN"
      - "ELASTICSEARCH_HOSTS=http://es:9200"
      # Kibana 连接 Elasticsearch 的账号密码,不可用于登录
      - "ELASTICSEARCH_USERNAME=kibana_system"
      - "ELASTICSEARCH_PASSWORD=123456"
networks:
  elastic:
    driver: bridge

elasticsearch.yml 配置文件

cluster.name: "docker-cluster"
network.host: 0.0.0.0
discovery.type: "single-node"
# 无需账号密码(需要配置为true)
xpack.security.enabled: false

运行docker-compose

docker-compose up -d es

此时会自动生成 data logs plugins 这几个文件

会发现elasticsearch无法启动,可能的原因是文件权限问题。Elasticsearch 使用的用户通常是 elasticsearch,而宿主机这几个文件夹是root用户,elasticsearch没有写入权限

解决方案1: 在宿主机上修改挂载文件夹的权限,使其对容器内的用户可访问。给data和logs 添加权限

chmod -R 777 data/ logs/ plugins/
docker-compose restart es

这样es容器就启动起来了,但可能存在安全风险,建议仅在开发环境中使用。

解决方案2:es容器使用elasticsearch 作为启动用户,他的用户和组id 为1000:1000,可在宿主机改变挂载文件夹所属用户和所属组再重启

chown -R 1000:0 data/ logs/ plugins/
docker-compose restart es

安装ik分词器

将对应版本的ik分词器解压放到plugins文件夹中 重启es容器,使用一下命令查看是否安装成功

curl http://localhost:9200/_cat/plugins

配置分词远程词库(默认拉取时间间隔为60秒)

cd ./plugins/ik/config

编辑配置文件 IKAnalyzer.cfg.xml 重启es容器

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典(不使用) -->
	<entry key="ext_dict"></entry>
	 <!--用户可以在这里配置自己的扩展停止词字典(不使用)-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典如下 确保容器中可访问该链接 -->
	<entry key="remote_ext_dict">http://xxx.xxx.xxx/stopwords.txt</entry>
	<!--用户可以在这里配置远程扩展停止词字典如下 确保容器中可访问该链接 -->
	<entry key="remote_ext_stopwords">http://xxx.xxx.xxx/stopwords.txt</entry>
</properties>
posted @ 2025-03-16 19:52  元気田支店长  阅读(606)  评论(0)    收藏  举报