本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
本仓库包含官方Hazelcast Docker镜像的Dockerfile。
可通过以下命令启动Hazelcast Docker容器。请查看Hazelcast版本以替换$HAZELCAST_VERSION。
$ docker run hazelcast/hazelcast:$HAZELCAST_VERSION
该命令将拉取Hazelcast Docker镜像并运行新的Hazelcast实例。
完整的Hazelcast版本列表可在官方Hazelcast Docker Hub查看。
对于最简单的端到端场景,可创建包含两个Docker容器的Hazelcast集群,并从客户端应用访问。
$ 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节点间通信集群启动后,可启动客户端应用验证是否正常工作。
可通过以下命令启动Hazelcast企业版Docker容器。请查看Hazelcast企业版版本以替换$HAZELCAST_VERSION。
请此处申请试用许可证或联系***。
$ docker run -e HZ_LICENSEKEY=<your_license_key> hazelcast/hazelcast-enterprise:$HAZELCAST_VERSION
完整的Hazelcast企业版版本列表可在官方Hazelcast Docker Hub查看。
运行两个Hazelcast企业版节点,使用以下命令:
$ 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社区版还是企业版集群,均可使用管理中心应用监控和管理集群。
docker 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镜像的信息见此处。
注意,Hazelcast 4.0起管理中心的启动方式已变更。若使用Hazelcast 3.x,请查看此处的说明。
如下所示,若需向Hazelcast成员传递多个VM参数,可使用JAVA_OPTS环境变量:
$ docker run -e JAVA_OPTS="-Xms512M -Xmx1024M" hazelcast/hazelcast
JMX Prometheus代理的端口。例如,若设置PROMETHEUS_PORT=8080,则可通过http://<hostname>:8080/metrics访问指标。也可使用PROMETHEUS_CONFIG指定自定义配置路径。
可通过LOGGING_LEVEL变量修改日志级别,例如输出DEBUG日志:
$ docker run -e LOGGING_LEVEL=DEBUG hazelcast/hazelcast
可用日志级别(从高到低):OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE和ALL。默认级别为INFO,无效级别将被视为OFF。
若需更自定义的日志配置,可指定配置文件:
$ 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模块。使用方法如下:
$ docker run -e LOGGING_CONFIG=log4j2-json.properties hazelcast/hazelcast
更多信息见Log4j2手册。
Hazelcast Docker镜像尊重容器内存限制,可通过-m参数指定:
$ docker run -m 512M hazelcast/hazelcast:$HAZELCAST_VERSION
默认Hazelcast使用容器内存限制的80%,可通过向JAVA_OPTS添加-XX:MaxRAMPercentage调整。
无需修改声明式配置文件(XML/YAML)即可覆盖集群配置项,详见覆盖配置文档章节。
假设需以下YAML配置:
hazelcast: cluster-name: dev network: port: auto-increment: true port-count: 100 port: 5701
使用环境变量表示如下:
$ 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:
$ 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/:
$ 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变量引用。
$ 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
$ 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:
FROM 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关闭,在停止前触发分区迁移(耗时取决于数据量)。使用此方式需配置:
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429