docker-compose安装单个节点es8.2.0版本

原创
06/16 16:43
阅读数 344

es单机布署安装

创建目录

创建ES安装所涉及的文件夹,具体如下:

mkdir -p  /data/es
mkdir -p  /data/es/data
mkdir -p  /data/es/config
mkdir -p  /data/es/plugins

备注:创建文件目录 需要赋予读写以及执行权限,否则服务启动挂载目录会失败导致服务启动失败

编写es配置

`vim  /data/es/config/elasticsearch.yml` 文件内容如下:

# 集群名称
cluster.name: zcga-es
# 节点名称
node.name: es-node-1
# 绑定host,0.0.0.0代表当前节点的ip
network.host: 0.0.0.0
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip),修改成自己ip
network.publish_host: 172.16.0.2
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
# transport.tcp.port: 9300
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
# 表示这个节点是否可以充当主节点
# node.master: true
# 是否充当数据节点
# node.data: true
# 所有主从节点ip:port 
# discovery.seed_hosts: ["172.16.0.2:9300"]  #本地只有一个节点,无法正常启动,先注释
# 这个参数决定了在选主过程中需要 有多少个节点通信  预防脑裂 N/2+1
# discovery.zen.minimum_master_nodes: 1
#初始化主节点
#cluster.initial_master_nodes: ["es-node-1"]
# 内存交换
bootstrap.memory_lock: true
# 关闭认证授权
xpack.security.enabled: false

编写docker-compose.yml

version: '3.9'
services:
  elasticsearch:
    image: elasticsearch:8.2.0
    container_name: es
    hostname: es
    privileged: true
    tty: true
    restart: unless-stopped
    environment:
      - TZ=Asia/Shanghai
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.type=single-node
    ports:
      - "9200:9200"
      - "9300:9300"
    networks:
      - es_network
    volumes:
      - /etc/localtime:/etc/timezone
      - /etc/localtime:/etc/localtime
      - /data/es/data:/usr/share/elasticsearch/data
      - /data/es/plugins:/usr/share/elasticsearch/plugins
      - /data/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  es-head:
    image: mobz/elasticsearch-head:5
    container_name: es-head
    hostname: es-head
    restart: always
    privileged: true
    tty: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "9100:9100"
    volumes:
      - /etc/localtime:/etc/timezone
      - /etc/localtime:/etc/localtime
  cerebro:
    image: lmenezes/cerebro:latest
    container_name: cerebro
    hostname: cerebro
    restart: always
    privileged: true
    tty: true
    environment:
      - TZ=Asia/Shanghai
      - AUTH_TYPE=basic
      - BASIC_AUTH_USER=your username
      - BASIC_AUTH_PWD= your password
    ports:
      - "9000:9000"
    volumes:
      - /etc/localtime:/etc/timezone
      - /etc/localtime:/etc/localtime
    command:
      - -Dhosts.0.host=http://elasticsearch:9200
    networks:
      - es_network
  kibana:
    image: kibana:8.2.0
    container_name: kibana
    hostname: kibana
    restart: always
    privileged: true
    tty: true
    volumes:
      - /etc/localtime:/etc/timezone
      - /etc/localtime:/etc/localtime
    environment:
      - TZ=Asia/Shanghai
      - I18N_LOCALE=zh-CN
      - XPACK_GRAPH_ENABLED=true
      - TIMELION_ENABLED=true
      - XPACK_MONITORING_COLLECTION_ENABLED="true"
    ports:
      - "5601:5601"
    links:
      - elasticsearch:elasticsearch
    depends_on:
      - elasticsearch
    networks:
      - es_network
networks:
  es_network:
    driver: bridge

安装IK分词器

  1. 下载与es版本一致的ik分词器插件 ,由于本次安装es版本为8.2.0版本,故下载此版本

https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v8.2.0

  1. 在宿主机上/data/es/plugins目录下创建ik文件目录

  2. 复制文件到宿主机/data/es/plugins/ik目录下,进行解压文件即可,命令如下:

    unzip elasticsearch-analysis-ik-8.2.0.zip 
    

启动服务

首次启动建议使用控制输出方式

docker-compose up

上述操作后服务能正常启动后,下次就可以后台进程方式启动服务

docker-compose up -d

验证服务可用

如果服务正常启动,无法访问请在防火墙开放相关端口。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
2 评论
0 收藏
0
分享
返回顶部
顶部