IBM z/OS imagen de la plataforma del contenedor (solo z/OS )
La imagen del contenedor para IBM® SDK, Java™ Technology Edition, Version 8 está disponible en los registros de contenedores IBM. Puede extraer la imagen del contenedor IBM Java 8 z/OS® y verificar la imagen utilizando el hash criptográfico. Las imágenes están firmadas y puedes verificar la firma.
Ejecución de la imagen del contenedor Java 8 z/OS
- Para ejecutar la imagen del contenedor Java 8 z/OS, debe tener configurado lo siguiente:
- Instalación de z/OS Container Platform tal como se explica en https://www.ibm.com/support/z-content-solutions/zos-container-platform/
- Acceso a IBM Container Registry tal como se explica en https://ibm.github.io/ibm-z-oss-hub/main/main.html
- IBM z/OS 2.5 o 3.1 con APAR PH59990 y OA66101
La imagen del contenedor IBM Java 8 z/OS está alojada en IBM Cloud® Container Registry bajo el espacio de nombres icr.io/zoscp/ibmjava
.
podman login -u iamapikey -p <key> icr.io
podman pull icr.io/zoscp/ibmjava:8
BPX.FILEATTR.APF
. Se recomienda utilizar un ID de administrador de imagen con los permisos correctos para extraer las imágenes Java en /var/lib/podman/storage
para otros usuarios de Podman para IBM z/OS (Podman). Para más información, consulte https://www.ibm.com/docs/en/zoscp/1.1.0?topic=platform-pushing-pulling-from-container-registry.A continuación, puede verificar la firma de la imagen IBM Java z/OS como se explica en la sección siguiente.
Verificación de la firma de la imagen del contenedor IBM Java z/OS
- Para verificar la firma de la imagen del contenedor, debe tener configurado lo siguiente:
- Un entorno Linux®
- gpg (instalar a través de paquetes de distribución de Linux )
- Skopeo (instalar a través de los paquetes de la distribución Linux )
- La clave pública debe existir en la máquina Linux que se utiliza para verificar la imagen firmada del contenedor z/OS. Para crear la clave pública, copie el bloque de texto siguiente exactamente como se muestra en un editor de texto y guárdelo como
ibm-java-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-----
- Importe la clave pública en un sistema Linux independiente para verificar la firma de la imagen del contenedor:
gpg --import ibm-java-public-gpgkey.gpg
- Calcule la huella digital con el mandato siguiente:
fingerprint=$(gpg --fingerprint --with-colons | grep fpr | tr -d 'fpr:')
Este mandato almacena la huella digital de la clave en una variable de entorno
fingerprint
, que el mandato utiliza para verificar la firma. Cuando salga de la sesión de shell, se suprimirá la variable. Puede establecerlo volviendo a ejecutar el comando durante el siguiente inicio de sesión. - Crea un directorio para la imagen y utiliza Skopeo para llevarla al almacenamiento local:
mkdir images skopeo copy docker://icr.io/zoscp/ibmjava:8 dir:./images
Puede autenticarse primero y realizar una copia de skopeo o utilizar directamente
--src-cred id:key
para extraer la imagen de docker.El mandato skopeo copy descarga la imagen como un conjunto de archivos y los coloca en el directorio de imágenes (u otro directorio que elija).- Un archivo de manifiesto denominado
images/manifest.json
- Un archivo de firmas denominado
images/signature-1
Haga referencia a ambos archivos en el paso siguiente (en el mandato para verificar la firma).
- Un archivo de manifiesto denominado
- Verifique la firma:
skopeo standalone-verify ./images/manifest.json icr.io/zoscp/ibmjava:8 ${fingerprint} ./images/signature-1
Obtendrá una confirmación sobre la verificación correcta de la firma similar al siguiente mensaje:Signature verified with <FINGERPRINT> , digest sha256:0000000000000000000000000000000000000000000000000000000000000000
$ podman images
Los detalles incluyen el espacio de nombres del repositorio desde donde se ha extraído la imagen y los detalles de la imagen extraída específica:REPOSITORY TAG IMAGE ID CREATED SIZE
icr.io/zoscp/ibmjava 8 8ef69ad2a6bc 11 days ago 644 MB
Limitaciones y métodos alternativos conocidos
El uso de la imagen del contenedor z/OS tiene las siguientes limitaciones y requiere soluciones para solucionarlas:
- Cuando se ejecuta en una instancia de z/OS Container Platform, la API de
java.nio.File.getFileStore()
puede emitir una excepciónjava.io.IOException: Device not found
al consultar un archivo que está alojado en un sistema de archivos de montaje de enlace. Una posible solución temporal es migrar los archivos a un sistema de archivos tmpfs. _BPXK_AUTOCVT=ON
se establece en las imágenes de contenedor Java y base de z/OS . Este valor ON puede introducir distintos comportamientos de manejo de codificación para las API dejava/nio
. Para evitar un comportamiento de manejo de codificación diferente, establezca_BPKX_AUTOCVT=OFF
para que coincida con el valor predeterminado en entornos z/OS no contenerizados.