docker部署elasticsearch

本文介绍如何使用Docker和docker-compose.yml文件部署Elasticsearch和Head插件,包括网络配置、端口映射和服务链接。同时,解决Head插件连接Elasticsearch失败的问题,通过修改elasticsearch.yml配置文件实现跨域访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker-compose.yml

version: '2'
services:
   elasticsearch-head:
      image: mobz/elasticsearch-head:5
      container_name: elasticsearch-head
      restart: always
      networks:
         extnetwork:
            ipv4_address: 172.19.0.100
      ports:
        - 9100:9100
      links:
        - elasticsearch

   elasticsearch:
      image: elasticsearch:5.6
      container_name: elasticsearch
      restart: always
      networks:
         extnetwork:
            ipv4_address: 172.19.0.101
      ports:
        - 9200:9200
        - 9300:9300   
      expose:
        - 9200
        - 9300

networks:
   extnetwork:
      ipam:
         config:
         - subnet: 172.19.0.0/16
           gateway: 172.19.0.1

若elasticsearch-head连接不上elasticsearch
在es/conf配置文件elasticsearch.yml加入:
http.cors.enabled: true
http.cors.allow-origin: “*”

重启elasticsearch解决

1.若报错:
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{qkvT8FQ8QvO-jhx2FyOt0A}{10.1.1.34}{10.1.1.34:9300}]

// 配置信息
 Settings esSetting = Settings.builder()
    .put("cluster.name", clusterName)
    .put("client.transport.sniff", false)//增加嗅探机制,找到ES集群
    .put("thread_pool.search.size", Integer.parseInt(poolSize))//增加线程池个数,暂时设为5
    .build();

注:a.版本要一致
b.client.transport.sniff设置false

另外:
config/elasticsearch.yml配置文件:

http.host: 0.0.0.0
#Uncomment the following lines for a production cluster deployment
transport.host: 0.0.0.0
#discovery.zen.minimum_master_nodes: 1
node.name: node-1
http.cors.enabled: true 
http.cors.allow-origin: "*"
cluster.name: my-application
http.port: 9200
network.host: 0.0.0.0
### 使用Docker部署Elasticsearch教程 #### 准备工作 为了确保顺利部署,需确认已安装并配置好Docker环境。对于特定版本的需求,如7.17.5版本的Elasticsearch及其组件,可通过指定标签拉取相应镜像[^1]。 #### 下载所需镜像 针对所需的Elasticsearch、Kibana以及IK分词器,均选择相同的大版本号以保障最佳兼容性。执行如下命令来获取官方提供的Docker镜像: ```bash docker pull elasticsearch:7.17.5 docker pull kibana:7.17.5 ``` 上述操作会从Docker Hub下载对应版本的软件包到本地机器上,以便后续创建容器实例时使用。 #### 启动单节点Elasticsearch服务 利用之前下载好的镜像文件,可以通过简单的`docker run`指令快速启动一个独立运作的服务端口映射至主机8080端口为例展示基本语法结构: ```bash docker run -d --name es-node \ -e "discovery.type=single-node" \ -p 9200:9200 \ -p 9300:9300 \ elasticsearch:7.17.5 ``` 此段脚本定义了一个名为`es-node`的新后台进程,并设置了必要的环境变量使得该节点作为单一模式运行;同时开放了两个网络接口供外部访问API请求及内部通信之用。 #### 运行Kibana可视化工具并与Elasticsearch连接 同样基于先前准备完毕的基础之上,继续添加另一个辅助性的前端界面——Kibana用于监控管理集群状态等高级功能特性。下面给出了一套完整的参数设置方案实现两者之间的无缝对接交互体验: ```bash docker run -d --name kb-server \ -e ELASTICSEARCH_HOSTS=http://<your-es-ip>:9200 \ -p 5601:5601 \ kibana:7.17.5 ``` 请注意替换其中占位符部分为实际存在的IP地址或者域名信息指向已经成功搭建完成后的搜索引擎位置。 #### 数据持久化处理建议 考虑到长期稳定性和灾难恢复能力,在生产级别应用场合下推荐采用挂载卷的方式保存重要资料防止意外丢失风险发生。例如修改之前的启动语句加入额外选项即可达成目的: ```bash docker run -d --name es-persistent \ -v /path/to/data:/usr/share/elasticsearch/data \ ... ``` 此处省略部分内容保持原有逻辑不变仅增加体积绑定路径从而达到预期效果[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值