You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署TheHive/Cortex时Elasticsearch本地端口无法访问问题

问题根因

当前docker-compose.yml中elasticsearch服务块未配置ports端口映射规则,容器仅对加入同一Hive自定义桥接网络的内部服务(Cortex)开放9200、9300端口,不会绑定到宿主机网卡,因此宿主机无法检测到对应端口监听,也无法直接访问Elasticsearch接口。

操作步骤
  • 编辑docker-compose.yml文件,在elasticsearch服务配置段(与environment、ulimits配置同级)添加端口映射规则:
elasticsearch:
    container_name: elasticsearch
    image: elasticsearch:7.11.1
    # 新增端口映射配置
    ports:
      # 允许所有来源(包括公网)访问ES时使用以下配置
      - '0.0.0.0:9200:9200'
      - '0.0.0.0:9300:9300'
      # 仅允许Ubuntu宿主机本地访问ES时,注释上面两行,启用以下两行配置
      # - '127.0.0.1:9200:9200'
      # - '127.0.0.1:9300:9300'
    environment:
      - http.host=0.0.0.0
      - discovery.type=single-node
      - cluster.name=hive
      - script.allowed_types= inline
      - thread_pool.search.queue_size=100000
      - thread_pool.write.queue_size=10000
      - gateway.recover_after_nodes=1
      - xpack.security.enabled=false
      - bootstrap.memory_lock=true
      - ES_JAVA_OPTS=-Xms256m -Xmx256m
    # 其余原有ulimits、volumes、networks配置保持不变
  • 保存配置文件后,在docker-compose.yml所在目录执行以下命令重建Elasticsearch容器,让配置生效:
    docker compose up -d elasticsearch
  • 验证配置生效:
    1. 执行docker compose ps,查看PORTS列,Elasticsearch条目应显示0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp格式的映射记录
    2. 执行netstat -tulpn | grep -E '9200|9300',可查询到宿主机对应端口的监听进程
    3. 宿主机本地执行curl http://127.0.0.1:9200,返回Elasticsearch集群基础信息即为访问正常
注意事项

由于服务部署在AWS Ubuntu实例上,若配置0.0.0.0端口映射对公网开放,需要同步在对应实例的安全组规则中放通9200、9300端口。当前配置中xpack.security.enabled=false为关闭Elasticsearch安全认证状态,公网暴露无认证的ES实例存在数据泄露、被恶意篡改的风险,生产环境不建议直接对公网开放。

内容的提问来源于stack exchange,提问作者Adam Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:09:14