翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
公式の Amazon ECR Public イメージまたは Docker イメージ AWS CLI から を実行する
このトピックでは、公式の Amazon Elastic Container Registry Public (Amazon ECR Public) または 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 と Docker Hub の区別
AWS CLI イメージには、Docker Hub ではなく Amazon ECR Public を使用することをお勧めします。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 Public イメージは、aws-cli/aws-cli
リポジトリ の Amazon ECR Public でホストされます。
$
docker run --rm -it public.ecr.aws/aws-cli/aws-cli command
- Docker Hub
-
公式 AWS CLI バージョン 2 の Docker イメージは、amazon/aws-cli
リポジトリの Docker Hub でホストされます。
$
docker run --rm -it amazon/aws-cli command
コマンドの機能は次のとおりです。
-
docker run --rm -it repository/name
— aws
実行可能ファイルと同等です。このコマンドを実行するたびに、Docker はダウンロードしたイメージのコンテナをスピンアップし、aws
コマンドを実行します。デフォルトでは、イメージは最新バージョンの AWS CLI バージョン 2 を使用します。
例えば、Docker で aws --version
コマンドを呼び出すには、以下を実行します。
- Amazon ECR Public
-
$
docker run --rm -it public.ecr.aws/aws-cli/aws-cli --version
aws-cli/2.17.20 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.17.20 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
-
--rm
- コマンドが終了後にコンテナをクリーンアップすることを指定します。
-
-it
- で擬似 TTYを開くことを指定しますstdin
。これにより、 aws configure
および aws help
コマンドなどを使用して、コンテナでの実行中に AWS CLI バージョン 2 に入力を提供できます。-it
を省略する場合は、以下の点を考慮してください。
-
スクリプトを実行している場合は、-it
は不要です。
-
スクリプトでエラーが発生する場合は、Docker 呼び出しから -it
を省略することで問題が解決する場合があります。
-
パイプ出力を実行しようとすると -it
でエラーの原因となることがあり、Docker 呼び出しから -it
を省略することで、この問題が解決する場合があります。-it
フラグを保持したままパイプ出力を実行する場合は、デフォルトで使用されているクライアント側のページャー AWS CLI
を無効にすることで問題が解決できます。
docker run
コマンドの詳細については、Docker reference guide を参照してください。
公式イメージのインターフェイスと下位互換性に関する注意事項
-
イメージでサポートされる唯一のツールは AWS CLIです。必ず、aws
実行可能ファイルは直接実行する必要があります。例えば、 less
と groff
がイメージに明示的にインストールされている場合でも、 AWS CLI コマンドの外部で直接実行しないでください。
-
/aws
作業ディレクトリは、ユーザーによってコントロールします。 AWS CLI コマンドの実行についてユーザーから指示がない限り、イメージはこのディレクトリに書き込まれません。
-
最新のタグに依存する場合、下位互換性は保証されません。下位互換性を保証するには、特定の <major.minor.patch>
タグに固定する必要があります。このタグはイミュータブルであり、1 回 のみプッシュされます。
特定のバージョンとタグの使用
公式 AWS CLI バージョン 2 イメージには、バージョン 以降で使用できる複数のバージョンがあります2.0.6
。 AWS CLI バージョン 2 の特定のバージョンを実行するには、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
Windows PowerShell
C:\>
docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli command
-v
フラグとマウントの詳細については、Docker reference guide を参照してください。
例 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
Windows 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
Windows 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
Windows 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
Windows 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!
Windows PowerShell
$
type hello
Hello from Docker!
例 3: AWS_PROFILE 環境変数の使用
特定システムの環境変数は、-e
フラグを使用して呼び出すことができます。使用したいそれぞれの環境変数を呼び出してください。この例では、ホストの認証情報、設定、および AWS_PROFILE
s3 ls
コマンドを実行して Amazon Simple Storage Service (Amazon S3) にバケットを一覧表示するときの 環境変数。
- 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
Windows 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
Windows 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 $*
Windows 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 $*
Windows 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 $*
Windows 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 $*
Windows 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
$*
Windows 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
$*
Windows 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.17.20 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10