Amazon ECRにDockerイメージを保存していて、それをAWS CodePipelineでFargateにデプロイするという構成において、デプロイに失敗した。コンテナがなにかおかしいらしいのでコンテナを確認したい。という状況になり、ECRからDockerイメージを落としてきて確認したくなったが、いつもやりかたを忘れるので備忘録として残しておく。
ECRからdocker pullする
$ docker pull your-aws-account-id.dkr.ecr.ap-northeast-1.amazonaws.com/xxx/yyy/zzz:latest
上記コマンドを実行すると認証エラーになった。(イメージのURLはAWSコンソールでECRを選択して選ぶ)
https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/Registries.html#registry_auth
ここを確認するとレジストリ認証が必要らしい。
$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin your-aws-account-id.dkr.ecr.ap-northeast-1.amazonaws.com
これでログインする。
aws cli v1ではget-login-passwordがなかったので注意。
事前に環境変数にAWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYとAWS_SESSION_TOKENをセットする必要があるかも。
これが成功したら先程のdocker pullを再実行すると成功する。
docker pullしたイメージを起動する
$ docker images
まずは上記コマンドでイメージが追加されてることを確認する。
$ docker run -it your-aws-account-id.dkr.ecr.ap-northeast-1.amazonaws.com/xxx/yyy/zzz:latest /bin/bash
最後に /bin/bash
と入れることでコンテナ内にbashで入れる。あとはご自由に。