
该Docker镜像提供易于配置的Elasticsearch节点,通过端口映射可轻松创建任意规模的集群。只要版本匹配,可将容器化节点与"真实"Elasticsearch节点混合使用,适用于快速搭建搜索服务、日志分析平台等场景。
Elasticsearch 5.x要求设置足够的虚拟内存mmap计数以确保稳定的生产使用,参考官方指南获取更多信息。
_cat/health端点启动单节点Elasticsearch,监听标准端口:
bashdocker run -d -p 9200:9200 -p 9300:9300 itzg/elasticsearch
验证节点是否存活,访问:http://DOCKERHOST:9200/,应返回类似以下响应:
json{ "status" : 200, "name" : "Charon", "version" : { "number" : "1.3.5", "build_hash" : "4a50e7df768fddd572f48830ae9c35e4ded86ac1", "build_timestamp" : "2014-11-05T15:21:28Z", "build_snapshot" : false, "lucene_version" : "4.9" }, "tagline" : "You Know, for Search" }
其中DOCKERHOST为运行Docker的主机实际 hostname。
在单台Docker主机上运行3节点集群:
bashdocker run -d --name es0 -p 9200:9200 itzg/elasticsearch docker run -d --name es1 --link es0 -e UNICAST_HOSTS=es0 itzg/elasticsearch docker run -d --name es2 --link es0 -e UNICAST_HOSTS=es0 itzg/elasticsearch
检查集群健康状态,访问:http://192.168.99.100:9200/_cluster/health?pretty,应返回类似:
json{ "cluster_name" : "elasticsearch", "status" : "green", "timed_out" : false, "number_of_nodes" : 3, "number_of_data_nodes" : 3, "active_primary_shards" : 0, "active_shards" : 0, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0 }
若已初始化Docker Swarm集群,下载https://raw.githubusercontent.com/itzg/dockerfiles/master/elasticsearch/docker-compose.yml%E5%B9%B6%E9%83%A8%E7%BD%B2%EF%BC%9A
bashdocker stack deploy -c docker-compose.yml es
通过docker service ls确认服务运行状态,应包含1个主节点、2个数据节点、1个网关节点和1个Kibana实例:
ID NAME MODE REPLICAS IMAGE 9nwnno8hbqgk es_kibana replicated 1/1 kibana:latest f5x7nipwmvkr es_gateway replicated 1/1 es om8rly2yxylw es_data replicated 2/2 es tdvfilj370yn es_master replicated 1/1 es
Kibana可通过端口5601访问。
容器内置HEALTHCHECK机制,每30秒查询_cat/health端点。通过docker ps查看容器状态,健康状态显示为:
Up 14 minutes (healthy)
通过docker inspect查看健康检查历史:
bashdocker inspect -f "{{json .State.Health}}" es
返回类似:
json{"Status":"healthy","FailingStreak":0,"Log":[...
9200 - HTTP REST接口9300 - 原生传输接口/data - 数据存储路径(对应path.data)/conf - 配置文件路径(对应path.conf)通过docker run -e NAME=VALUE指定配置,或在运行容器的/conf/env文件中设置(格式为NAME=VALUE)。未明确支持的配置可通过OPTS环境变量传递,默认OPTS=-Dnetwork.bind_host=_non_loopback_(自2.0版本起,bind_host默认值为localhost,此设置便于容器端口映射)。
集群名称
指定集群名称(默认"elasticsearch"):
bash-e CLUSTER=dockers
Zen Unicast主机
多物理主机集群中,若网络不支持多播,可通过逗号分隔的HOST:PORT列表指定集群节点:
bash-e UNICAST_HOSTS=HOST:PORT[,HOST:PORT]
示例:
bash-e UNICAST_HOSTS=192.168.0.100:9300
插件安装
通过逗号分隔的插件ID列表安装插件:
bash-e PLUGINS=ID[,ID]
示例(安装Marvel插件):
bash-e PLUGINS=elasticsearch/marvel/latest
更多插件参考官方插件列表。
发布地址
覆盖容器内部IP地址,指定物理网络地址和端口:
bash-e PUBLISH_AS=DOCKERHOST:9301
作者注:实际使用中很少需要此配置,除日志显示的IP地址外,Elasticsearch对网络配置有良好的容错性。
节点名称
指定节点名称(默认随机分配):
bash-e NODE_NAME=Docker
节点类型
根据Elasticsearch节点文档,支持多种节点类型,通过TYPE变量指定:
Docker Compose示例:
yamlversion: '3' services: gateway: image: itzg/elasticsearch environment: UNICAST_HOSTS: master TYPE: GATEWAY ports: - "9200:9200" master: image: itzg/elasticsearch environment: UNICAST_HOSTS: gateway TYPE: MASTER MIN_MASTERS: 2 data: image: itzg/elasticsearch environment: UNICAST_HOSTS: master,gateway TYPE: DATA kibana: image: kibana ports: - "5601:5601" environment: ELASTICSEARCH_URL: http://gateway:9200
最小主节点数
配置最小主节点数以避免网络中断时的“脑裂”问题,计算公式为(主节点数 / 2) + 1,通过MIN_MASTERS设置:
bash-e MIN_MASTERS=2
结合上述Compose示例,扩展主节点至3个时:
bashdocker-compose scale master=3
多网络绑定(Swarm模式)
Docker Swarm模式下容器可能有多个网络设备,可通过DISCOVER_TRANSPORT_IP和DISCOVER_HTTP_IP指定网络设备:
bash-e DISCOVER_TRANSPORT_IP=eth0 -e DISCOVER_HTTP_IP=eth2
JVM选项(堆大小等)
默认Java堆大小为1GB,通过ES_JAVA_OPTS调整JVM参数:
bash-e ES_JAVA_OPTS="-Xms16g -Xmx16g"
更多信息参考Elasticsearch堆大小指南。
以下是 itzg/elasticsearch 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务