
Infinispan Server Docker 镜像提供了便捷的方式在容器环境中部署和运行 Infinispan 服务器,支持快速启动、灵活的认证配置、集群部署及调试功能,适用于开发和生产环境中的分布式数据存储需求。
在本地机器上启动 Infinispan 服务器,只需执行:
bashdocker run -p 11222:11222 infinispan/server
或
bashpodman run --net=host -p 11222:11222 infinispan/server
使用 podman 时,如果不以
sudo执行,必须传递--net=host参数。
默认情况下,镜像在所有暴露的端点上启用认证。执行上述命令时,镜像会自动生成具有“admin”角色的用户名/密码组合,打印到标准输出,然后启动 Infinispan 服务器,在 *** 端口暴露经过认证的 Hotrod 和 Rest 端点。因此,通过客户端访问端点时需使用打印的凭据。
也可通过环境变量提供 admin 用户名/密码组合:
bashdocker run -p 11222:11222 -e USER="admin" -e PASS="changeme" infinispan/server
建议仅在初始开发中使用自动生成的凭据或 USER & PASS 环境变量。通过 Identities Batch 文件 提供认证和授权配置可实现更精细的控制。
HotRod 客户端
连接 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 11222:11222 infinispan/server
Infinispan 镜像将所有容器参数传递给服务器,因此可像非容器化部署一样配置服务器。
本地配置文件挂载
创建并挂载 docker volume,使用本地配置文件 my-infinispan-config.xml 运行镜像:
bashdocker run -v $(pwd):/user-config -e IDENTITIES_BATCH="/user-config/identities.batch" -p 11222:11222 infinispan/server -c /user-config/my-infinispan-config.xml
Kubernetes/Openshift 集群配置
在 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 属性配置
通过 JAVA_OPTIONS 环境变量提供 Java 属性和 JVM 选项。例如快速配置 CORS:
bashdocker run -e JAVA_OPTIONS="-Dinfinispan.cors.enableAll=https://host.domain:port" infinispan/server
部署 artifacts 到服务器 lib 目录
使用 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
以下是 infinispan/server 相关的常用 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务