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

如何修改Docker主机网络模式下Elasticsearch的端口号

修改主机网络模式下Elasticsearch的端口号

主机网络模式下,容器直接共享主机的网络命名空间,Docker的端口映射规则不再生效,必须通过修改Elasticsearch自身配置来调整端口。以下是两种可行的解决方法:

方法一:通过环境变量指定端口

直接在environment中添加Elasticsearch的端口配置项,覆盖默认的9200(HTTP)和9300(节点通信)端口。同时注意修正原配置中networks_mode的拼写错误,正确参数为network_mode:

services:
  elasticsearch_place_data:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: elasticsearch_place_data
    restart: on-failure
    environment:
    - discovery.type=single-node
    - http.host=0.0.0.0
    - ES_JAVA_OPTS=-Xms512m -Xmx512m
    - xpack.security.enabled=false
    - http.port=9201  # 自定义HTTP端口
    - transport.port=9301  # 自定义节点间通信端口(按需配置)
    volumes:
    - es_place_data:/usr/share/elasticsearch/data
    network_mode: host
volumes:
  es_place_data:

方法二:挂载自定义配置文件

如果需要更复杂的配置,可挂载本地自定义的elasticsearch.yml文件覆盖容器默认配置:

  1. 创建本地配置文件elasticsearch.yml,内容示例:
discovery.type: single-node
http.host: 0.0.0.0
xpack.security.enabled: false
http.port: 9201
transport.port: 9301
  1. 修改docker-compose.yml添加配置挂载:
services:
  elasticsearch_place_data:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: elasticsearch_place_data
    restart: on-failure
    environment:
    - ES_JAVA_OPTS=-Xms512m -Xmx512m
    volumes:
    - es_place_data:/usr/share/elasticsearch/data
    - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  # 挂载自定义配置
    network_mode: host
volumes:
  es_place_data:

注意事项

  • 确保自定义端口未被主机上其他进程占用,否则Elasticsearch启动会失败。
  • 修改端口后,访问Elasticsearch需使用新端口,例如http://localhost:9201。

内容的提问来源于stack exchange,提问作者Helgi Borg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:55:29