3.5. コンテナーイメージをミラーレジストリーにアップロードする


コンテナーイメージをエアギャップサイトで使用するには、次の手順を実行してミラーレジストリーにコンテナーイメージをアップロードします。

前提条件

  • microshift-quay にアクセスできるホストにログインしている。
  • .pull-secret-mirror.json ファイルがローカルで使用できる。
  • microshift-containers ディレクトリーの内容がローカルで使用できる。

手順

  1. 次のコマンドを実行して、コンテナーイメージのコピーに使用する skopeo ツールをインストールします。

    $ sudo dnf install -y skopeo
  2. プルシークレットファイルを指す環境変数を設定します。

    $ IMAGE_PULL_FILE=~/.pull-secret-mirror.json
  3. ローカルコンテナーイメージディレクトリーを指す環境変数を設定します。

    $ IMAGE_LOCAL_DIR=~/microshift-containers
  4. コンテナーイメージをアップロードするためのミラーレジストリー URL を指す環境変数を設定します。

    $ TARGET_REGISTRY=<registry_host>:<port> 1
    1
    <registry_host>:<port> をミラーレジストリーサーバーのホスト名とポートに置き換えます。
  5. 次のスクリプトを実行して、コンテナーイメージを ${TARGET_REGISTRY} ミラーレジストリーにアップロードします。

    image_tag=mirror-$(date +%y%m%d%H%M%S)
    image_cnt=1
       # Uses timestamp and counter as a tag on the target images to avoid
       # their overwrite by the 'latest' automatic tagging
    
    pushd "${IMAGE_LOCAL_DIR}" >/dev/null
    while read -r src_manifest ; do
       # Remove the manifest.json file name
       src_img=$(dirname "${src_manifest}")
       # Add the target registry prefix and remove SHA
       dst_img="${TARGET_REGISTRY}/${src_img}"
       dst_img=$(echo "${dst_img}" | awk -F'@' '{print $1}')
    
       # Run the image upload command
       echo "Uploading '${src_img}' to '${dst_img}'"
       skopeo copy --all --quiet \
          --preserve-digests \
          --authfile "${IMAGE_PULL_FILE}" \
          dir://"${IMAGE_LOCAL_DIR}/${src_img}" docker://"${dst_img}:${image_tag}-${image_cnt}"
       # Increment the counter
       (( image_cnt += 1 ))
    
    done < <(find . -type f -name manifest.json -printf '%P\n')
    popd >/dev/null
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.