以下手順を元にWindowsPCにDockerでAWS CLI2を設定します。docs.aws.amazon.com
目次
実施作業
Dockerインストール確認
Dockerのインストールは既に終わっているので省略します。
以下のコマンドを実行してインストールされていることを確認します。
$ docker --version
確認結果
Dockerイメージのダウンロード
次にDockerイメージのダウンロードを行っていきます。
AWS CLIのDockerイメージはDockerHubで公開されているので、以下のコマンドを実行してイメージをダウンロードします。(docker runコマンドを初回実行した場合にダウンロードされます)
$ docker run --rm -it amazon/aws-cli
実行結果
以下のコマンドを実行するとDockerイメージがダウンロードされたかを確認することができます。
$ docker image ls
実行結果
Dockerイメージはコマンドの初回実行時のみ自動ダウンロードされるため、最新バージョンにイメージを更新したい場合は以下のコマンドで手動で行います。
$ docker pull amazon/aws-cli:latest
ホスト側フォルダマウント・認証情報設定
DockerでAWS CLIを実行するとホスト側のファイルへのアクセスはできないようになっています。
そこでホスト側の~/.awsディレクトリをコンテナにマウントして実行することで、コンテナからホスト側のファイルへのアクセスをできるようにします。
以下のコマンドでAWS CLIの認証情報ファイルをコンテナ内ではなく、ホスト側に作成します。
docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli configure
問題なく作成されています。
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 $*
いくつかコマンドを実行してみましたが、想定通りに動作しているので問題はなさそうです。
その他
今回はdockerコマンドに--rmオプションをつけているので、awsコマンドが実行されるたびにコンテナが起動され、終了すると自動で停止するように設定しています。
感想及び所感
諸事情で開発環境が初期化されたので、新しくなったついでに試してみました。
これからはDockerをもっと活用していきたいです。