公式の Amazon ECR パブリックイメージまたは Docker AWS CLI イメージからを実行します。 - AWS Command Line Interface

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

公式の Amazon ECR パブリックイメージまたは Docker AWS CLI イメージからを実行します。

このトピックでは、公式の Amazon Elastic コンテナレジストリパブリック (Amazon ECR パブリック) または Docker Hub イメージを使用して Docker AWS CLI 上でバージョン 2 を実行、バージョン管理、設定する方法について説明します。Docker の使用方法の詳細については、Docker のドキュメントを参照してください。

公式イメージは、 AWS 直接的なサポートとメンテナンスを可能にする分離性、移植性、セキュリティを提供します。これにより、インストールを自分で管理しなくても、 AWS CLI バージョン 2 をコンテナベースの環境で使用できます。

前提条件

Docker がインストールされている必要があります。インストール手順については、Docker のウェブサイトを参照してください。

Docker のインストールを確認するには、次のコマンドを実行し、出力があることを確認します。

$ docker --version Docker version 19.03.1

Amazon ECR Public と DockerHub のどちらを選択するか

イメージには Docker Hub ではなく Amazon ECR パブリックを使用することをお勧めします。 AWS CLI Docker Hubでは、一般消費者向けのレート制限が厳しくなっているため、スロットリングの問題が発生する可能性があります。さらに、Amazon ECR Public は、複数のリージョンにイメージをレプリケートして、高い可用性を実現し、リージョンの停止問題に対処します。

Docker Hub のレート制限の詳細については、Docker ウェブサイトの「Understanding Docker Hub Rate Limiting (Docker Hub のレート制限とは)」を参照してください。

AWS CLI バージョン 2 の公式イメージを実行してください。

docker run コマンドを初めて使用すると、最新のイメージがコンピュータにダウンロードされます。それ以降の docker run コマンドの使用は、ローカルコピーから実行されます。

AWS CLI バージョン 2 の Docker イメージを実行するには、docker runコマンドを使用します。

Amazon ECR Public

AWS CLI 公式バージョン 2 の Amazon ECR パブリックイメージは、リポジトリ内の Amazon ECR パブリックでホストされています。aws-cli/aws-cli

$ docker run --rm -it public.ecr.aws/aws-cli/aws-cli command
Docker Hub

AWS CLI バージョン 2 の公式の Docker イメージは、リポジトリ内の Docker Hub でホストされています。amazon/aws-cli

$ docker run --rm -it amazon/aws-cli command

コマンドの機能は次のとおりです。

  • docker run --rm -it repository/nameaws 実行可能ファイルと同等です。このコマンドを実行するたびに、Docker はダウンロードしたイメージのコンテナをスピンアップし、aws コマンドを実行します。デフォルトでは、イメージはバージョン 2 の最新バージョンを使用します。 AWS CLI

    例えば、Docker で aws --version コマンドを呼び出すには、以下を実行します。

    Amazon ECR Public
    $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli --version aws-cli/2.15.30 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
    Docker Hub
    $ docker run --rm -it amazon/aws-cli --version aws-cli/2.15.30 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
  • --rm - コマンドが終了後にコンテナをクリーンアップすることを指定します。

  • -it - で疑似 TTY をで開くように指定します。stdinこれにより、 AWS CLI コンテナ内で実行中のバージョン 2 に、aws configureaws helpたとえばおよびコマンドを使用して入力を提供できます。-it を省略する場合は、以下の点を考慮してください。

    • スクリプトを実行している場合は、-it は不要です。

    • スクリプトでエラーが発生する場合は、Docker 呼び出しから -it を省略することで問題が解決する場合があります。

    • パイプ出力を実行しようとすると -it でエラーの原因となることがあり、Docker 呼び出しから -it を省略することで、この問題が解決する場合があります。-it フラグを保持したままパイプ出力を実行する場合は、デフォルトで使用されているクライアント側のページャー AWS CLI を無効にすることで問題が解決できます。

docker run コマンドの詳細については、Docker reference guide を参照してください。

公式イメージのインターフェイスと下位互換性に関する注意事項

  • イメージでサポートされる唯一のツールは AWS CLIです。必ず、aws 実行可能ファイルは直接実行する必要があります。たとえば、lessgroffとがイメージに明示的にインストールされていても、 AWS CLI コマンドの外部で直接実行すべきではありません。

  • /aws 作業ディレクトリは、ユーザーによってコントロールします。 AWS CLI ユーザーがコマンドを実行するように指示しない限り、イメージはこのディレクトリに書き込まれません。

  • 最新のタグに依存する場合、下位互換性は保証されません。下位互換性を保証するには、特定の <major.minor.patch> タグに固定する必要があります。このタグはイミュータブルであり、1 回 のみプッシュされます。

特定のバージョンとタグの使用

AWS CLI バージョン 2 の公式イメージには、version 2.0.6 から始まる複数のバージョンがあります。バージョン 2 AWS CLI の特定のバージョンを実行するには、docker runコマンドに適切なタグを追加します。初めてタグを指定して docker run コマンドを使用すると、そのタグの最新のイメージがコンピュータにダウンロードされます。それ以降、そのタグで docker run コマンドを使用する場合は、ローカルコピーから実行されます。

次の 2 種類のタグを使用できます。

  • latest— イメージのバージョン 2 AWS CLI の最新バージョンを定義します。 AWS CLI バージョン 2 の最新バージョンを使用する場合は、latest タグを使用することをお勧めします。ただし、このタグに依存する場合の下位互換性は保証されません。latest タグは、docker run コマンドでデフォルトで使用されます。latest タグを明示的に使用するには、タグをコンテナイメージ名に追加します。

    Amazon ECR Public
    $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli:latest command
    Docker Hub
    $ docker run --rm -it amazon/aws-cli:latest command
  • <major.minor.patch>— イメージのバージョン 2 AWS CLI の特定のバージョンを定義します。本番環境で公式イメージを使用する予定がある場合は、 AWS CLI 下位互換性を確保するためにバージョン 2 の特定のバージョンを使用することをお勧めします。例えば、バージョン 2.0.6 を実行するには、コンテナイメージ名にバージョンを追加します。

    Amazon ECR Public
    $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli:2.0.6 command
    Docker Hub
    $ docker run --rm -it amazon/aws-cli:2.0.6 command

最新の公式イメージに更新する

最新のイメージは、docker run コマンドの初回使用時にのみコンピュータにダウンロードされるため、更新したイメージは手動でプルする必要があります。手動で最新バージョンに更新するには、latest タグ付きイメージをプルすることをお勧めします。イメージをプルすると、コンピュータに最新バージョンがダウンロードされます。

Amazon ECR Public
$ docker pull public.ecr.aws/aws-cli/aws-cli:latest
Docker Hub
$ docker pull amazon/aws-cli:latest

ホストファイル、認証情報、環境変数、構成を共有する

AWS CLI バージョン 2 はコンテナ内で実行されるため、デフォルトでは CLI は設定と認証情報を含むホストファイルシステムにアクセスできません。ホストファイルシステム、認証情報、および設定をコンテナと共有するには、ホストシステムの ~/.aws ディレクトリを /root/.aws のコンテナにマウントして、-v コマンドに docker run フラグを付けます。これにより、 AWS CLI コンテナ内で実行されているバージョン 2 がホストファイル情報を検索できるようになります。

Amazon ECR Public

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command
Docker Hub

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli command

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli command

ウィンドウズ PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli command

-v フラグとマウントの詳細については、Docker reference guide を参照してください。

注記

config および credentials の詳細については、「設定ファイルと認証情報ファイルの設定」を参照してください。

例 1: 認証情報と設定の提供

この例では、Amazon Simple Storage Service (Amazon S3) でバケットを一覧表示する s3 ls コマンドの実行時に、ホストの認証情報および設定を提供しています。以下の例では、 AWS CLI 認証情報と設定ファイルのデフォルトの場所を使用しています。別の場所を使用する場合は、ファイルパスを変更してください。

Amazon ECR Public

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls
Docker Hub

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

ウィンドウズ PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli s3 ls

特定システムの環境変数は、-eフラグを使用して呼び出すことができます。環境変数を使用するには、変数を名前で呼び出します。

Amazon ECR Public

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

ウィンドウズ PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls
Docker Hub

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

ウィンドウズ PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls

例 2: ホストシステムへの Amazon S3 ファイルのダウンロード

AWS CLI バージョン 2 の一部のコマンドでは、コンテナ内のホストシステムからファイルを読み取ったり、コンテナからホストシステムにファイルを書き込んだりできます。

この例では、現在の作業ディレクトリをコンテナの S3 ディレクトリにマウントして、s3://aws-cli-docker-demo/hello オブジェクト /aws をローカルファイルシステムにダウンロードします。hello オブジェクトをコンテナの /aws ディレクトリにダウンロードすると、ファイルはホストシステムの現在の作業ディレクトリにも保存されます。

Amazon ECR Public

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello .
Docker Hub

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello

ウィンドウズ PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello .

ダウンロードしたファイルがローカルファイルシステムに存在することを確認するには、以下を実行します。

Linux および macOS

$ cat hello Hello from Docker!

ウィンドウズ PowerShell

$ type hello Hello from Docker!

例 3: AWS_PROFILE 環境変数の使用

特定システムの環境変数は、-eフラグを使用して呼び出すことができます。使用したいそれぞれの環境変数を呼び出してください。この例では、Amazon Simple Storage Service (Amazon S3) でバケットをリストする s3 ls コマンドの実行時に、ホスト認証情報、設定、および AWS_PROFILE 環境変数を提供しています。

Amazon ECR Public

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

ウィンドウズ PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls
Docker Hub

Linux および macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows コマンドプロンプト

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

ウィンドウズ PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls

docker run コマンドの短縮

docker run コマンドを短縮するには、オペレーティングシステムの機能を使用して Linux および macOS で symbolic link (シンボリックリンク) または alias を作成するか、Windows で doskey を作成することをお勧めします。aws エイリアスを設定するには、次のいずれかのコマンドを実行します。

  • aws コマンドへの基本的なアクセスについては、以下を実行します。

    Amazon ECR Public

    Linux および macOS

    $ alias aws='docker run --rm -it public.ecr.aws/aws-cli/aws-cli'

    Windows コマンドプロンプト

    C:\> doskey aws=docker run --rm -it public.ecr.aws/aws-cli/aws-cli $*

    ウィンドウズ PowerShell

    C:\> Function AWSCLI {docker run --rm -it public.ecr.aws/aws-cli/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
    Docker Hub

    Linux および macOS

    $ alias aws='docker run --rm -it amazon/aws-cli'

    Windows コマンドプロンプト

    C:\> doskey aws=docker run --rm -it amazon/aws-cli $*

    ウィンドウズ PowerShell

    C:\> Function AWSCLI {docker run --rm -it amazon/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
  • aws コマンド使用時にホストファイルシステムおよび構成設定にアクセスする場合は、以下を実行します。

    Amazon ECR Public

    Linux および macOS

    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli'

    Windows コマンドプロンプト

    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli $*

    ウィンドウズ PowerShell

    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
    Docker Hub

    Linux および macOS

    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli'

    Windows コマンドプロンプト

    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli $*

    ウィンドウズ PowerShell

    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
  • aws エイリアスで使用する特定のバージョンを割り当てるには、バージョンタグを追加します。

    Amazon ECR Public

    Linux および macOS

    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli:2.0.6'

    Windows コマンドプロンプト

    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli:2.0.6 $*

    ウィンドウズ PowerShell

    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli:2.0.6 $args} Set-Alias -Name aws -Value AWSCLI
    Docker Hub

    Linux および macOS

    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli:2.0.6'

    Windows コマンドプロンプト

    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli:2.0.6 $*

    ウィンドウズ PowerShell

    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli:2.0.6 $args} Set-Alias -Name aws -Value AWSCLI

エイリアスを設定すると、ホストシステムにインストールされているかのように、 AWS CLI コンテナ内からバージョン 2 を実行できます。

$ aws --version aws-cli/2.15.30 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10