IBM z/OS 容器平台图像
IBM® Semeru Runtime® Certified Edition for z/OS®, 17 的容器镜像可在 IBM 容器注册表中找到。 您可以拉取 17 z/OS 容器 Semeru 镜像,并通过加密哈希值验证镜像。 图片都有签名,您可以验证签名。
运行 Semeru 17z/OS 容器镜像
- 要运行 17 z/OS 容器 Semeru 镜像,您必须具备以下配置:
- 安装 z/OS Container Platform ,如 https://www.ibm.com/support/z-content-solutions/zos-container-platform/ 中所述
- 对 IBM Container Registry 的访问权,如 https://ibm.github.io/ibm-z-oss-hub/main/main.html 中所述
- IBM z/OS 2.5 或 3.1 与 APAR PH59990 和 OA66101
容器镜像 Semeruz/OS 17 托管在 命名 icr.io/zoscp/ibm-semeru-runtimesIBM Cloud® Container Registry 空间下。
注意: 要获取 17 z/OS 容器 Semeru 镜像,请通过 提交 https://www.ibm.com/mysupport/ 工单,选择" z/OS Container Platform"(PID: 5655-MC3 )作为产品选项。 请将<key>替换为您收到的授权密钥值。
podman login -u iamapikey -p <key> icr.io您可以使用以下命令从 IBM Cloud Container Registry 提取 z/OS 的容器镜像:
podman pull icr.io/zoscp/ibm-semeru-runtimes:certified-17-jdk-zos注意: 该图片需要
BPX.FILEATTR.APF 的读取权限。 建议使用具有正确权限的图像管理员 ID 将 Java™ 图像调入 /var/lib/podman/storage ,供 Podman 的其他用户用于 IBM z/OS ( Podman )。 更多信息,请参见 https://www.ibm.com/docs/en/zoscp/1.1.0?topic=platform-pushing-pulling-from-container-registry.随后,您可以按照下一节所述的方法验证图像z/OSSemeru 17的签名。
验证容器镜像 z/OS 17 Semeru 的签名
- 要验证容器镜像的签名,您必须进行以下设置:
- Linux® 环境
- gpg (通过 Linux 发行版的软件包安装)
- skopeo(通过 Linux 发行版的软件包进行安装)
- 用于验证已签名 z/OS 容器镜像的 Linux 机器上必须存在公钥。 要创建公用密钥,请将以下文本块完全复制到文本编辑器中,并将其另存为
semeru-runtimes-public-gpgkey.gpg。-----BEGIN PGP PUBLIC KEY BLOCK----- mQINBGQbR9wBEADR//wuh48qCwcrHnGrURseqEG7binLYxb5G4fpOQd9tH/7dLIC iU7HyoFbMmGiPS1BP7sJ+gn8Kb1dU5IM9ZpBAO4LlMLCm7g2qyc+bkVqQKYezTBa fvpgDJhZ+e7b4P1vYkx1Ex9XpDd27S/o4aULGnmPjQ9SMtT3qlZf2b59clN9x30Y VXM2qoRRrpFAkhkoEYQIboY0644TatrVt5CNAQiECdZBn/c0z5op0b42JWTeXvAl D/FEOWhilSyjSeY7c8ANvP9q3Ur0k18wBCPt47vhXWf5/h9gbBxNtv0p+vKVNVKQ 8CJdPHmylWdtHyWQsNkxFwGZ4EUzhP6YxxV3JQwy5eNnHB8Mt1Xb8LGhqbRdxSBE 0dlHeQIzzAknex6mhAtKyUxJ/+1mxcU1w+kWiYSBrWw71eIEEKhIWGszqW9JND3F PJ0tNluTlkMJSlboK457/8rKB/NY5qgqDLTaxF6ZSjZUI7rgb1FcGEfV0Te3l0cO EdUdjg4fM2DXreVZd54JBcp2bEUdcQOmolUIo4wFTNjQawF6ApPmb7qzq5SV7EZj Cup4Jg4rE/SJhtOVUM4BIYkQ2SLOo4dIqAdFwOrHogXVm1neUJgMJ5US4tply18C RJCt9VbGTmiFzQkxMgAKXhi9QFuvET1Xc5GUCzkOgoXSoH/IvdeUl8eUJwARAQAB tDJJQk0gU2VtZXJ1IFJ1bnRpbWVzIFNpZ25pbmcgS2V5IDxwc2lydEB1cy5pYm0u Y29tPokCOgQTAQgAJAUCZBtH3AIbDwULCQgHAgYVCgkICwIEFgIDAQIeAQUJAAAA AAAKCRAMOZfZio1FgmNYEACjElnUd7E7n71AYoNTD27+S7Vl8YTyzGkVUVeb1c+3 L3ASZ+kadEMKLepEYsCjGVqQPNXoeosg2YQ4ziY9IlGj5fvoFMuIqx6qisuL9xjM HaL3xI9aBCX9C/GtZd8DvvvcmglDb8tbOyLAq6tnkhAP1EEaH9cw2jY8V3zH7k99 xqFso+g8GwaEYA7OGyjlvC2uy4wExo1MRodtv+0cxUmKZWoFqu9fNH7a3C9VPBtr VX5rRWoRJrcjI0Q6OxqximKs7P9H2S9kZtL7Zm4kxh/ZrSWPXlbC8/brs8TDdiga oFIDmmlK0rCWpsupna69DqS5aBNEO9WOYH8cAG3aw1MsHV0CSLAYZ9Iez7fb5uYx FClg5mNYj3vWmYRsiLCyaNrhJapCJyPWRCx6U5592yDkCHM9z0WJbGIweEZtfXXB KCdGW/LWweHYI0xs3BlVOfkg98RAxzMxr3ut7oAa/J0BsqbyV+VMm+jM/Tm/nReG JTucOa/s+z4MFyP5cQgJH3JUyrhV73vlUKqEqQaoWUTQjVM4Pp42Ew67lFlafoGZ i7HB1kG+Tq/Od3vNugSM+SzmC+oxcEbbPxEJt2IU25e4ncsiJSIIb51ZAsysE2Ob YL0Ace+djFYlq9wVG39w9tlgHn094GOsf60X6urdIL6cK/haHGmLyiOBPDhZ9wyd NA== =brr/ -----END PGP PUBLIC KEY BLOCK----- - 在单独的 Linux 系统上导入公钥,以验证容器镜像的签名:
gpg --import semeru-runtimes-public-gpgkey.gpg - 使用以下命令计算指纹:
fingerprint=$(gpg --fingerprint --with-colons | grep fpr | tr -d 'fpr:')此命令将密钥的指纹存储在环境变量
fingerprint中,此命令用于验证签名。 退出 shell 会话时,将删除该变量。 您可以在下次登录时重新运行该命令进行设置。 - 为镜像创建一个目录,然后使用 skopeo 命令将镜像提取到本地存储中:
mkdir images skopeo copy docker://icr.io/zoscp/ibm-semeru-runtimes:certified-17-jdk-zos dir:./images你可以先进行身份验证,然后复制 skopeo ,或者直接使用
--src-creds iamapikey:<entitlement key>拉取 docker 镜像。skopeo 复制命令会将图像下载为一组文件,并将其放置在图像目录(或您选择的其他目录)中。- 名为
images/manifest.json的清单文件 - 名为
images/signature-1的签名文件
在下一步 (在验证签名的命令中) 中同时引用这两个文件。
- 名为
- 验证签名:
skopeo standalone-verify ./images/manifest.json icr.io/zoscp/ibm-semeru-runtimes:certified-17-jdk-zos ${fingerprint} ./images/signature-1您将在成功验证签名时获得类似于以下消息的确认:Signature verified with <FINGERPRINT> , digest sha256:0000000000000000000000000000000000000000000000000000000000000000
拉取映像后,该映像将在服务器上可用。 您可以使用以下命令来检查详细信息:
$ podman images详细信息包括从中拉取映像的存储库名称空间以及特定的拉取映像详细信息:REPOSITORY TAG IMAGE ID CREATED SIZE
icr.io/zoscp/ibm-semeru-runtimes 17 8ef69ad2a6bc 11 days ago 644 MB已知限制和变通方法
z/OS 容器镜像的使用存在以下限制,需要通过变通方法解决这些限制:
- 在 z/OS Container Platform 实例中,如果
java.nio.File.getFileStore()API 查询托管在绑定挂载文件系统上的文件,可能会抛出java.io.IOException: Device not found异常。 一种可能的解决方法是将文件迁移到临时文件系统 (tmpfs)。 _BPXK_AUTOCVT=ON在 z/OS 基本映像和 Java 容器映像中设置。 此 ON 设置可能会为java/nioAPI 引入不同的编码处理行为。 要避免不同的编码处理行为,请将_BPKX_AUTOCVT=OFF设置为与非容器化 z/OS 环境上的缺省设置相匹配。