Downloading container images

Follow these instructions if you need to download all the container images for IBM® App Connect Enterprise certified container. For example, you might need to copy them to an internal registry or you might want to scan them for vulnerabilities.

Procedure

To download the container images, complete the following steps:

  1. Follow the instructions in Mirroring images with a bastion host to download the Container Application Software for Enterprises (CASE) archive. This archive, which is typically provided for installing within a restricted network, includes metadata and files that you'll require later. Complete the instructions in the following sections:

    On completion of these steps, you obtain the following files:

    • The downloaded CASE packages, which contain metadata for the container images required to deploy each IBM App Connect capability. (Each CASE package also contains the required scripts to mirror images to a private registry, and to configure the target cluster to use the private registry as a mirror.)
    • Generated comma-separated value (CSV) files listing the images. The CSV files, combined with your IBM Entitled Registry entitlement key, are used for downloading or mirroring the images manually.
  2. Log in to your container tool (such as docker or skopeo) to access the entitled registry. Use cp as the username and your entitlement key as the password. For example:
    docker login cp.icr.io -u cp -p myEntitlementKey
  3. Use a shell script to process all images that are supported on the target architecture. In this command, /tmp/cases represents the directory to which you downloaded the CASE archive.
    • amd64 architecture:
      tail -q -n +2 /tmp/cases/*-images.csv | while IFS="," read registry image_name tag digest mtype os arch variant insecure digest_source image_type groups; do
        if [[ "$arch" == "amd64" ]]; then
          docker pull "$registry/$image_name@$digest"
          docker tag "$registry/$image_name@$digest" "$registry/$image_name:$tag"
        fi
      done
    • s390x architecture:
      tail -q -n +2 /tmp/cases/*-images.csv | while IFS="," read registry image_name tag digest mtype os arch variant insecure digest_source image_type groups; do
        if [[ "$arch" == "s390x" ]]; then
          docker pull "$registry/$image_name@$digest"
          docker tag "$registry/$image_name@$digest" "$registry/$image_name:$tag"
        fi
      done
    • ppc64le architecture:
      tail -q -n +2 /tmp/cases/*-images.csv | while IFS="," read registry image_name tag digest mtype os arch variant insecure digest_source image_type groups; do
        if [[ "$arch" == "ppc64le" ]]; then
          docker pull "$registry/$image_name@$digest"
          docker tag "$registry/$image_name@$digest" "$registry/$image_name:$tag"
        fi
      done

    Instead of docker, you can use alternative container tools such as podman or skopeo:

    • Use podman as a direct replacement for docker in the preceding commands.
    • Use one skopeo command to replace the docker pull and docker tag commands. For example:
      skopeo copy --dest-tls-verify=false docker://$registry/$image_name@$digest docker-daemon:$registry/$image_name:$tag

    You can also use skopeo to save images to disk, or to copy them directly to another container registry.


    Note: If you need your clusters to access these images from a private registry, the image digests must be preserved.