Infinispan Server Docker 镜像提供了便捷的方式在容器环境中部署和运行 Infinispan 服务器,支持快速启动、灵活的认证配置、集群部署及调试功能,适用于开发和生产环境中的分布式数据存储需求。
在本地机器上启动 Infinispan 服务器,只需执行:
bashdocker run -p ***:*** infinispan/server
或
bashpodman run --net=host -p ***:*** infinispan/server
使用 podman 时,如果不以
sudo执行,必须传递--net=host参数。
默认情况下,镜像在所有暴露的端点上启用认证。执行上述命令时,镜像会自动生成具有“admin”角色的用户名/密码组合,打印到标准输出,然后启动 Infinispan 服务器,在 *** 端口暴露经过认证的 Hotrod 和 Rest 端点。因此,通过客户端访问端点时需使用打印的凭据。
也可通过环境变量提供 admin 用户名/密码组合:
bashdocker run -p ***:*** -e USER="admin" -e PASS="changeme" infinispan/server
建议仅在初始开发中使用自动生成的凭据或 USER & PASS 环境变量。通过 Identities Batch 文件 提供认证和授权配置可实现更精细的控制。
连接 HotRod 客户端到镜像时,客户端必须配置以下 SASL 属性(根据实际情况修改用户名和密码):
propertiesinfinispan.client.hotrod.auth_username=admin infinispan.client.hotrod.auth_password=changme infinispan.client.hotrod.sasl_mechanism=DIGEST-MD5
可通过 IDENTITIES_BATCH 环境变量定义用户身份和角色。该文件中的所有 CLI 命令在服务器启动前执行,仅支持离线命令(如包含 create cache ... 等需连接服务器的命令将导致容器启动失败)。
Infinispan 为部分用户提供隐式角色。查看 Infinispan 文档 了解更多隐式角色和授权信息。
以下是定义四个用户及其角色的示例 identities.batch 文件:
bashuser create "Alan Shearer" -p "striker9" -g admin user create "observer" -p "secret1" user create "deployer" -p "secret2" user create "Rigoberta Baldini" -p "secret3" -g monitor
使用本地 identities.batch 文件运行镜像:
bashdocker run -v $(pwd):/user-config -e IDENTITIES_BATCH="/user-config/identities.batch" -p ***:*** infinispan/server
Infinispan 镜像将所有容器参数传递给服务器,因此可像非容器化部署一样配置服务器。
创建并挂载 docker volume,使用本地配置文件 my-infinispan-config.xml 运行镜像:
bashdocker run -v $(pwd):/user-config -e IDENTITIES_BATCH="/user-config/identities.batch" -p ***:*** infinispan/server -c /user-config/my-infinispan-config.xml
在 Kubernetes 等托管环境中,需使用 JGroups DNS_PING 协议进行节点发现。配置 kubernetes 堆栈并设置 jgroups.dnsPing.query 属性:
bashdocker run -v $(pwd):/user-config infinispan/server --bind-address=0.0.0.0 -Dinfinispan.cluster.stack=kubernetes -Djgroups.dns.query="infinispan-dns-ping.myproject.svc.cluster.local"
通过 JAVA_OPTIONS 环境变量提供 Java 属性和 JVM 选项。例如快速配置 CORS:
bashdocker run -e JAVA_OPTIONS="-Dinfinispan.cors.enableAll=[***]" infinispan/server
使用 SERVER_LIBS 环境变量将 artifacts 部署到服务器 lib 目录。例如添加 PostgreSQL JDBC 驱动:
bashdocker run -e SERVER_LIBS="org.postgresql:postgresql:42.3.1" infinispan/server
SERVER_LIBS 支持多个空格分隔的 artifacts(URL 或 Maven 坐标),.tar、.tar.gz 或 .zip 格式的归档文件将被自动提取。参考 CLI install 命令帮助了解更多参数。
设置 DEBUG=TRUE 环境变量可调试镜像配置和启动脚本:
bashdocker run -e DEBUG=true infinispan/<image-name>
设置 DEBUG_PORT 环境变量可调试容器中的 Infinispan 服务器:
bashdocker run -e DEBUG_PORT="*:8787" -p 8787:8787 infinispan/server
镜像基于 ubi-minimal 构建,以下是常用调试工具/命令:
| 任务 | 命令 |
|---|---|
| 文本编辑器 | vi |
| 获取 Java 进程 PID | ps -fC java |
| 获取套接字/文件信息 | lsof |
| 列出所有打开文件(排除网络套接字) | lsof | grep -v "IPv[46]" |
| 列出所有 TCP 套接字 | ss -t -a |
| 列出所有 UDP 套接字 | ss -u -a |
| 网络配置 | ip |
| 显示单播路由 | ip route |
| 显示多播路由 | ip maddress |
建议使用 Infinispan 的 REST 端点配置 Kubernetes httpGet 探针:
yamllivenessProbe: httpGet: path: /rest/v2/cache-managers/default/health/status port: *** failureThreshold: 5 initialDelaySeconds: 10 successThreshold: 1 timeoutSeconds: 10 readinessProbe: httpGet: path: /rest/v2/cache-managers/default/health/status port: *** failureThreshold: 5 initialDelaySeconds: 10 successThreshold: 1 timeoutSeconds: 10


来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429