Amazon ECRからイメージをpullするためにやる事
はじめに
業務でAmazon ECRに作成済みのイメージを取得する必要があり、この辺りの知識が全くなかったのでいろいろ調べた事をメモします。
Amazon ECRとは
そもそも何なのかもよくわからなかったので調べました。
Amazon Elastic Container Registry (Amazon ECR) は、安全性と信頼性に優れたスケーラブルなマネージド AWS Docker レジストリサービスです。Amazon ECR では、AWS IAM を使用してプライベート Docker リポジトリにリソースベースのアクセス権限が付与されるため、特定のユーザーまたは Amazon EC2 インスタンスからリポジトリとイメージにアクセスできるようになります。開発者は、Docker CLI を使用してイメージをプッシュ、プル、および管理できます
引用:Amazon ECR ユーザーガイド - Amazon Elastic Container Registry とは -
AWS上で管理可能なDockerHubのようなものという理解をしました。
Amazon ECRからイメージをpullする
まずAmazon ECRに接続するためには docker login を行う必要があります。 このコマンドは AWS CLI のコマンドを使うことで取得できます。
aws ecr get-login --no-include-email
上記コマンドを実行するためにまずは AWS CLI をインストールします。
$ brew install awscli
次に、IAM ユーザーのアクセスキー ID およびシークレットアクセスキーをAWSから取得し、aws configureコマンドを使ってインストールした AWS CLI に登録しておきます。
$ aws configure AWS Access Key ID [None]: 取得したAccess Key AWS Secret Access Key [None]: 取得したSecret Access Key Default region name [None]: リージョン名 Default output format [None]: 出力形式(指定しない場合はjson)
完了後、下記コマンドを実行し認証用の docker login コマンドを取得し、取得したコマンド実行することで docker CLIから Amazon ECR に接続ができるようなります。
$ aws ecr get-login --no-include-email
出力:
docker login -u AWS -p password https://aws_account_id.dkr.ecr.us-east-1.amazonaws.com
ここまで成功したらいつも通り docker pull コマンドで必要なイメージをpull することが出来ました
$ docker pull 取得したいイメージ
以上です。
(まだ全然理解できていないので、間違いなどあったらご指摘ください。)