Docker イメージをプッシュする - Amazon ECR

Docker イメージをプッシュする

docker push コマンドを使用してコンテナイメージを Amazon ECR リポジトリにプッシュできます。Amazon ECR は、マルチアーキテクチャイメージに使用される Docker マニフェストリストの作成とプッシュもサポートしています。マニフェストリストで参照される各イメージは、すでにリポジトリにプッシュされている必要があります。詳しくは、「マルチアーキテクチャイメージのプッシュ」を参照してください。

Docker イメージを Amazon ECR リポジトリにプッシュするには

イメージをプッシュする前に、Amazon ECR リポジトリが存在している必要があります。詳細については、「プライベートリポジトリを作成する」を参照してください。

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

    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. プッシュ先となるリポジトリにイメージリポジトリが存在しない場合は、作成します。詳細については、「プライベートリポジトリを作成する」を参照してください。

  3. プッシュするローカルイメージを識別します。docker images コマンドを実行し、システム上のコンテナイメージを一覧表示します。

    docker images

    イメージは、結果のコマンド出力で repository:tag の値またはイメージ ID によって識別できます。

  4. Amazon ECR レジストリ、リポジトリ、およびオプションのイメージタグ名を組み合わせたタグをイメージに付与します。レジストリ形式は aws_account_id.dkr.ecr.region.amazonaws.com です。リポジトリ名は、イメージ用に作成したリポジトリと一致する必要があります。イメージタグを省略した場合、タグは latest と見なされます。

    次の例は、ID が e9ae3c220b23 のローカルイメージに aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag というタグを付けます。

    docker tag e9ae3c220b23 aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
  5. docker push コマンドを使用してイメージをプッシュします。

    docker push aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
  6. (オプション) 追加のタグをイメージに適用し、ステップ 4ステップ 5 を繰り返して、それらのタグを Amazon ECR にプッシュします。