IBM z/OS Container-Plattform-Bild
Das Container-Image für IBM® Semeru Runtime® Certified Edition for z/OS®, 17 ist in den IBM -Container-Registern verfügbar. Sie können das Semeru Container-Image z/OS „17“ herunterladen und anhand des kryptografischen Hashwerts überprüfen. Bilder sind signiert und Sie können die Signatur überprüfen.
Ausführen des Semeru 17 z/OS Container-Images
- Um das Semeru Container-Image z/OS 17 auszuführen, müssen Sie Folgendes einrichten:
- Installation von z/OS Container Platform gemäß der Beschreibung in https://www.ibm.com/support/z-content-solutions/zos-container-platform/
- Zugriff auf IBM Container Registry , wie in https://ibm.github.io/ibm-z-oss-hub/main/main.html erläutert
- IBM z/OS 2.5 oder 3.1 mit APARs PH59990 und OA66101
Das Semeru Container-Image z/OS 17 wird unter IBM Cloud® Container Registry dem icr.io/zoscp/ibm-semeru-runtimes Namespace gehostet.
podman login -u iamapikey -p <key> icr.iopodman pull icr.io/zoscp/ibm-semeru-runtimes:certified-17-jdk-zosBPX.FILEATTR.APF erforderlich. Es wird empfohlen, eine Bildverwalter-ID mit den richtigen Berechtigungen zu verwenden, um die Java™-Bilder in /var/lib/podman/storage für andere Benutzer von Podman für IBM z/OS ( Podman ) zu ziehen. Für weitere Informationen siehe https://www.ibm.com/docs/en/zoscp/1.1.0?topic=platform-pushing-pulling-from-container-registry.Anschließend können Sie die Signatur des Bildes Semeru z/OS 17 wie im folgenden Abschnitt beschrieben überprüfen.
Überprüfung der Signatur des Semeru 17 z/OS Container-Images
- Um die Signatur des Container-Images zu überprüfen, müssen Sie Folgendes einrichten:
- Eine Linux® -Umgebung
- gpg (Installation über Linux -Distributionspakete)
- skopeo (Installation über die Pakete der Distribution Linux )
- Der öffentliche Schlüssel muss auf dem Linux -Rechner vorhanden sein, der zur Überprüfung des signierten z/OS -Container-Images verwendet wird. Um den öffentlichen Schlüssel zu erstellen, kopieren Sie den folgenden Textblock genau wie gezeigt in einen Texteditor und speichern Sie ihn als
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----- - Importieren Sie den öffentlichen Schlüssel auf einem separaten Linux -System, um die Signatur des Container-Images zu überprüfen:
gpg --import semeru-runtimes-public-gpgkey.gpg - Berechnen Sie den Fingerabdruck mit dem folgenden Befehl:
fingerprint=$(gpg --fingerprint --with-colons | grep fpr | tr -d 'fpr:')Dieser Befehl speichert den Fingerabdruck des Schlüssels in einer Umgebungsvariablen
fingerprint, die der Befehl zum Überprüfen der Signatur verwendet. Wenn Sie Ihre Shellsitzung beenden, wird die Variable gelöscht. Sie können es einstellen, indem Sie den Befehl bei der nächsten Anmeldung erneut ausführen. - Erstellen Sie ein Verzeichnis für das Image und verwenden Sie den Befehl skopeo , um das Image in den lokalen Speicher zu ziehen:
mkdir images skopeo copy docker://icr.io/zoscp/ibm-semeru-runtimes:certified-17-jdk-zos dir:./imagesSie können sich entweder zuerst authentifizieren und eine skopeo Kopie machen oder direkt
--src-creds iamapikey:<entitlement key>verwenden, um das Docker-Image zu ziehen.Der Befehl skopeo copy lädt das Bild als eine Reihe von Dateien herunter und legt sie im Verzeichnis images (oder einem anderen von Ihnen gewählten Verzeichnis) ab.- Eine Manifestdatei mit dem Namen
images/manifest.json - Eine Signaturdatei mit dem Namen
images/signature-1.
Im nächsten Schritt (im Befehl zur Überprüfung der Signatur) verweisen Sie auf beide Dateien.
- Eine Manifestdatei mit dem Namen
- Überprüfen Sie die Signatur:
skopeo standalone-verify ./images/manifest.json icr.io/zoscp/ibm-semeru-runtimes:certified-17-jdk-zos ${fingerprint} ./images/signature-1Sie erhalten eine Bestätigung über die erfolgreiche Überprüfung der Signatur ähnlich der folgenden Nachricht:Signature verified with <FINGERPRINT> , digest sha256:0000000000000000000000000000000000000000000000000000000000000000
$ podman imagesZu den Details gehören der Repository-Namensbereich, aus dem das Image mit einer Pull-Operation extrahiert wurde, und die spezifischen Details des mit einer Pull-Operation extrahierten Image:REPOSITORY TAG IMAGE ID CREATED SIZE
icr.io/zoscp/ibm-semeru-runtimes 17 8ef69ad2a6bc 11 days ago 644 MBBekannte Einschränkungen und Problemumgehungen
Die Verwendung des Container-Bildes z/OS unterliegt den folgenden Einschränkungen und erfordert Workarounds, um diese Einschränkungen zu beheben:
- Innerhalb einer z/OS Container Platform Instanz kann die
java.nio.File.getFileStore()API einejava.io.IOException: Device not foundAusnahme auslösen, wenn sie eine Datei abfragt, die auf einem bind mount Dateisystem gehostet wird. Eine mögliche Abhilfe besteht darin, die Dateien in ein temporäres Dateisystem (tmpfs) zu migrieren. _BPXK_AUTOCVT=ONwird in den z/OS -Basis-und Java-Container-Images festgelegt. Diese ON-Einstellung kann unterschiedliche Codierungsverhalten fürjava/nio-APIs einführen. Um ein anderes Verhalten bei der Codierungsbehandlung zu vermeiden, legen Sie_BPKX_AUTOCVT=OFFso fest, dass es der Standardeinstellung in nicht containerisierten z/OS -Umgebungen entspricht.