如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本仓库包含官方Hazelcast Docker镜像的Dockerfile。
可通过以下命令启动Hazelcast Docker容器。请查看Hazelcast版本以替换$HAZELCAST_VERSION。
bash$ docker run hazelcast/hazelcast:$HAZELCAST_VERSION
该命令将拉取Hazelcast Docker镜像并运行新的Hazelcast实例。
最新版本
完整的Hazelcast版本列表可在官方Hazelcast Docker Hub查看。
对于最简单的端到端场景,可创建包含两个Docker容器的Hazelcast集群,并从客户端应用访问。
bash$ docker run -e HZ_NETWORK_PUBLICADDRESS=<host_ip>:5701 -p 5701:5701 hazelcast/hazelcast:$HAZELCAST_VERSION $ docker run -e HZ_NETWORK_PUBLICADDRESS=<host_ip>:5702 -p 5702:5701 hazelcast/hazelcast:$HAZELCAST_VERSION
注意:
5701端口映射到主机的不同端口(示例中为5701和5702)HZ_NETWORK_PUBLICADDRESS对自动发现至关重要,否则Hazelcast将绑定到Docker内部端口<host_ip>需为主机地址,用于Hazelcast节点间通信集群启动后,可启动https://github.com/hazelcast/hazelcast-code-samples/tree/master/clients/basic%E5%BA%94%E7%94%A8%E9%AA%8C%E8%AF%81%E6%98%AF%E5%90%A6%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%E3%80%82
可通过以下命令启动Hazelcast企业版Docker容器。请查看Hazelcast企业版版本以替换$HAZELCAST_VERSION。
请此处申请试用许可证或联系***。
bash$ docker run -e HZ_LICENSEKEY=<your_license_key> hazelcast/hazelcast-enterprise:$HAZELCAST_VERSION
最新版本
完整的Hazelcast企业版版本列表可在官方Hazelcast Docker Hub查看。
运行两个Hazelcast企业版节点,使用以下命令:
bash$ docker run -p 5701:5701 -e HZ_LICENSEKEY=<your_license_key> -e HZ_NETWORK_PUBLICADDRESS=<host_ip>:5701 hazelcast/hazelcast-enterprise:$HAZELCAST_VERSION $ docker run -p 5702:5701 -e HZ_LICENSEKEY=<your_license_key> -e HZ_NETWORK_PUBLICADDRESS=<host_ip>:5702 hazelcast/hazelcast-enterprise:$HAZELCAST_VERSION
注意:
无论启动的是Hazelcast社区版还是企业版集群,均可使用管理中心应用监控和管理集群。
bashdocker run \ -e MC_INIT_CMD="./bin/hz-mc conf cluster add -H=/data -ma <host_ip>:5701 -cn dev" \ -p 8080:8080 hazelcast/management-center:$MANAGEMENT_CENTER_VERSION
现在可通过浏览器访问管理中心:https://localhost:8080。更多关于管理中心Docker镜像的信息见https://github.com/hazelcast/management-center-docker%E3%80%82
注意,Hazelcast 4.0起管理中心的启动方式已变更。若使用Hazelcast 3.x,请查看https://github.com/hazelcast/hazelcast-docker/tree/3.12.z%E7%9A%84%E8%AF%B4%E6%98%8E%E3%80%82
如下所示,若需向Hazelcast成员传递多个VM参数,可使用JAVA_OPTS环境变量:
bash$ docker run -e JAVA_OPTS="-Xms512M -Xmx1024M" hazelcast/hazelcast
JMX Prometheus代理的端口。例如,若设置PROMETHEUS_PORT=8080,则可通过http://<hostname>:8080/metrics访问指标。也可使用PROMETHEUS_CONFIG指定自定义配置路径。
可通过LOGGING_LEVEL变量修改日志级别,例如输出DEBUG日志:
bash$ docker run -e LOGGING_LEVEL=DEBUG hazelcast/hazelcast
可用日志级别(从高到低):OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE和ALL。默认级别为INFO,无效级别将被视为OFF。
若需更自定义的日志配置,可指定配置文件:
bash$ docker run -v <config-file-path>:/opt/hazelcast/config/log4j2.properties hazelcast/hazelcast
自版本5.1起
可通过LOGGING_CONFIG变量修改日志配置,例如挂载自定义Log4j2配置文件并通过该变量设置路径。默认值为/opt/hazelcast/config/log4j2.properties,支持相对或绝对路径。
镜像中还提供log4j2-json.properties文件,使用Log4j2的log4j-layout-template-json模块。使用方法如下:
bash$ docker run -e LOGGING_CONFIG=log4j2-json.properties hazelcast/hazelcast
更多信息见Log4j2手册。
Hazelcast Docker镜像尊重容器内存限制,可通过-m参数指定:
bash$ docker run -m 512M hazelcast/hazelcast:$HAZELCAST_VERSION
默认Hazelcast使用容器内存限制的80%,可通过向JAVA_OPTS添加-XX:MaxRAMPercentage调整。
无需修改声明式配置文件(XML/YAML)即可覆盖集群配置项,详见覆盖配置文档章节。
假设需以下YAML配置:
yamlhazelcast: cluster-name: dev network: port: auto-increment: true port-count: 100 port: 5701
使用环境变量表示如下:
bash$ docker run -e HZ_CLUSTERNAME=dev \ -e HZ_NETWORK_PORT_AUTOINCREMENT=true \ -e HZ_NETWORK_PORT_PORTCOUNT=100 \ -e HZ_NETWORK_PORT_PORT=5701 \ hazelcast/hazelcast
若需使用自定义hazelcast.yaml(或hazelcast.xml)配置Hazelcast,可挂载包含配置文件的主机目录,并传递hazelcast.config JVM属性。例如,假设配置文件位于/home/ubuntu/hazelcast/hazelcast.yaml:
bash$ docker run -e JAVA_OPTS="-Dhazelcast.config=/opt/hazelcast/config_ext/hazelcast.yaml" -v /home/ubuntu/hazelcast:/opt/hazelcast/config_ext hazelcast/hazelcast
也可扩展Hazelcast基础镜像添加自定义配置文件。
Hazelcast提供多个扩展点(如MapStore API),可通过添加自定义实现扩展功能。若需将自定义JAR或文件添加到容器的classpath,可使用Docker卷并在docker run命令中设置CLASSPATH环境变量。例如,假设自定义JAR位于/home/ubuntu/hazelcast/:
bash$ docker run -e CLASSPATH="/opt/hazelcast/CLASSPATH_EXT/*" -v /home/ubuntu/hazelcast:/opt/hazelcast/CLASSPATH_EXT hazelcast/hazelcast
也可扩展Hazelcast基础镜像添加自定义JAR。
HZ_NETWORK_SSL_ENABLED环境变量用于启用通信加密。需挂载密钥材料目录并通过JAVA_OPTS变量引用。
bash$ mkdir keystore $ keytool -validity 365 -genkeypair -alias server -keyalg EC -keystore ./keystore/server.keystore -storepass 123456 -keypass 123456 -dname CN=localhost $ keytool -export -alias server -keystore ./keystore/server.keystore -storepass 123456 -file ./keystore/server.crt $ keytool -import -noprompt -alias server -keystore ./keystore/server.truststore -storepass 123456 -file ./keystore/server.crt
bash$ docker run -e HZ_LICENSEKEY=<your_license_key> \ -e HZ_NETWORK_SSL_ENABLED=true \ -v `pwd`/keystore:/keystore \ -e "JAVA_OPTS=-Djavax.net.ssl.keyStore=/keystore/server.keystore -Djavax.net.ssl.keyStorePassword=123456 -Djavax.net.ssl.trustStore=/keystore/server.truststore -Djavax.net.ssl.trustStorePassword=123456" \ hazelcast/hazelcast-enterprise
如需自定义Hazelcast成员,可扩展Hazelcast基础镜像并添加配置文件或自定义JAR。需创建新Dockerfile并通过docker build构建。
以下Dockerfile示例基于Hazelcast镜像,添加自定义配置文件和主机的自定义JAR:
dockerfileFROM hazelcast/hazelcast:$HAZELCAST_VERSION # 添加自定义hazelcast.yaml ADD hazelcast.yaml ${HZ_HOME} ENV JAVA_OPTS -Dhazelcast.config=${HZ_HOME}/hazelcast.yaml # 添加自定义JAR到classpath ADD custom-library.jar ${HZ_HOME}
可通过docker stop <containerid>命令停止成员。
默认Hazelcast配置为接收Docker的SIGTERM信号后TERMINATE,容器快速停止,集群数据安全依赖其他成员的备份。
另一种选择是GRACEFUL关闭,在停止前触发分区迁移(耗时取决于数据量)。使用此方式需配置:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务