
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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 镜像,适用于 不同场景 等不同场景: