カピバラ好きなエンジニアブログ

興味ある技術とか検証した内容を赴くままに書いていきます。カピバラの可愛さこそ至高。

AWS CLI2をDockerで実行する

以下手順を元にWindowsPCにDockerでAWS CLI2を設定します。docs.aws.amazon.com

実施作業

Dockerインストール確認

Dockerのインストールは既に終わっているので省略します。
以下のコマンドを実行してインストールされていることを確認します。

$ docker --version

確認結果
f:id:live-your-life-dd18:20201029120544p:plain

Dockerイメージのダウンロード

次にDockerイメージのダウンロードを行っていきます。
AWS CLIのDockerイメージはDockerHubで公開されているので、以下のコマンドを実行してイメージをダウンロードします。(docker runコマンドを初回実行した場合にダウンロードされます)

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

実行結果
f:id:live-your-life-dd18:20201029120938p:plain


以下のコマンドを実行するとDockerイメージがダウンロードされたかを確認することができます。

$ docker image ls

実行結果
f:id:live-your-life-dd18:20201029121119p:plain


Dockerイメージはコマンドの初回実行時のみ自動ダウンロードされるため、最新バージョンにイメージを更新したい場合は以下のコマンドで手動で行います。

$ docker pull amazon/aws-cli:latest


AWS CLIの実行確認

以下のコマンドを実行して、AWS CLIのバージョンを確認します。

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

確認結果
f:id:live-your-life-dd18:20201029121316p:plain

ホスト側フォルダマウント・認証情報設定

DockerでAWS CLIを実行するとホスト側のファイルへのアクセスはできないようになっています。
そこでホスト側の~/.awsディレクトリをコンテナにマウントして実行することで、コンテナからホスト側のファイルへのアクセスをできるようにします。

以下のコマンドでAWS CLIの認証情報ファイルをコンテナ内ではなく、ホスト側に作成します。

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

f:id:live-your-life-dd18:20201029122331p:plain


問題なく作成されています。
f:id:live-your-life-dd18:20201029122637p:plain

Dockerコマンドの短縮

awsコマンドを実行する度にdocker run~と打っていると長すぎて時間がかかってしまいます。
なので、エイリアスを設定してawsだけでコマンドが実行できるように設定します。

以下の手順に従って設定をします。
qiita.com

$profileに設定した内容は以下です。

function aws {
	docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v ${PWD}:/aws amazon/aws-cli $args
}



コマンドプロンプトはこちらのコマンドでできるようです。

doskey aws=docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v ${PWD}:/aws amazon/aws-cli $*



いくつかコマンドを実行してみましたが、想定通りに動作しているので問題はなさそうです。
f:id:live-your-life-dd18:20201029125411p:plain

その他

今回はdockerコマンドに--rmオプションをつけているので、awsコマンドが実行されるたびにコンテナが起動され、終了すると自動で停止するように設定しています。

感想及び所感

諸事情で開発環境が初期化されたので、新しくなったついでに試してみました。
これからはDockerをもっと活用していきたいです。