マルチアーキテクチャイメージを Amazon ECR プライベートリポジトリにプッシュする - Amazon ECR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マルチアーキテクチャイメージを Amazon ECR プライベートリポジトリにプッシュする

Docker マニフェストリストを作成してプッシュすることで、マルチアーキテクチャイメージを Amazon ECR リポジトリにプッシュできます。マニフェストリストは、1 つ以上のイメージ名を指定して作成されるイメージのリストです。ほとんどの場合、マニフェストリストは同じ機能を提供するが、異なるオペレーティングシステムまたはアーキテクチャ用のイメージから作成されます。マニフェストリストは必須ではありません。詳細については、「Docker マニフェスト」を参照してください。

マニフェストリストは、他の Amazon ECR イメージと同様に、Amazon ECS タスク定義または Amazon EKS ポッド仕様でプルまたは参照できます。

前提条件

マルチアーキテクチャ Docker イメージを Amazon ECR リポジトリにプッシュするには
  1. イメージのプッシュ先となる Amazon ECR レジストリに対して Docker クライアントを認証します。認証トークンは、使用するレジストリごとに取得する必要があり、トークンは 12 時間有効です。詳細については、「Amazon ECR でのプライベートレジストリ認証」を参照してください。

    Amazon ECR レジストリに対して Docker を認証するには、aws ecr get-login-password コマンドを実行します。認証トークンを docker login コマンドに渡すとき、ユーザー名の AWS 値を使用し、認証先の Amazon ECR レジストリの URI を指定します。複数のレジストリに対して認証する場合は、レジストリごとにコマンドを繰り返す必要があります。

    重要

    エラーが発生した場合は、 AWS CLIの最新バージョンをインストールまたはアップグレードします。詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS Command Line Interfaceのインストール」を参照してください。

    aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  2. リポジトリ内のイメージをリストし、イメージタグを確認します。

    aws ecr describe-images --repository-name my-repository
  3. Docker マニフェストリストを作成します。manifest create コマンドは、参照されたイメージがリポジトリにすでに存在することを確認し、マニフェストをローカルに作成します。

    docker manifest create aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository:image_one_tag aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository:image_two
  4. (オプション) Docker マニフェストリストを検査します。これにより、マニフェストリストで参照される各イメージマニフェストのサイズとダイジェストを確認できます。

    docker manifest inspect aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository
  5. Docker マニフェストリストを Amazon ECR リポジトリにプッシュします。

    docker manifest push aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository