目次


Amazon ECRのレジストリで、コンテナイメージの保存



Amazon ECRとは

Amazon Elastic Container Registry
ECRは、コンテナイメージの圧縮保存・管理をする

ECSでも、EKSでも、AWSで使うなら、Docker Hubではなく、ECRを使いましょう。
Docker HubのAWS版です。


ECRの場所(ステージングか本番か)

ECRの場所は、ステージング環境に置いておいて、本番環境でも利用できるようにするのか?分からなかったので、調べてみました。

ECRは、ステージングと本番両方に作るのがよさそうです。
両方に、docker pushするのが良さそうです。


手順

Dockerイメージの準備

$ docker pull alpine
$ docker images
alpine    latest   965ea09ff2eb  4 weeks ago   5.55MB


リポジトリ作成

マネコンの操作

リポジトリ名 t-kurihara/test01 <アカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com/

<アカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com/t-kurihara/test01

CLIの操作

作成
$ aws ecr create-repository --repository-name test12345
確認
$ aws ecr describe-repositories --repository-name  test12345


プッシュコマンドの表示

レジストリの認証を行う

Dockerの認証に関わるコマンドを実行します

$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin <アカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com
Login Succeeded

AWS CLI v2では 以下のaws ecr get-loginが使用できなくなっています。
$(aws ecr get-login –no-include-email –region ap-northeast-1)


ECRのレポジトリに合わせたタグの修正

プッシュするイメージに、ECRのレポジトリ用のタグを付けます。

docker tag 元のリポジトリ名:元のタグ名 変更後のリポジトリ名:変更後のタグ名

例
docker tag alpine:latest <アカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com/t-kurihara/test01:latest



docker imagesで確認

$ docker images
123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/cm-hirano/test01   latest              965ea09ff2eb        4 weeks ago         5.55MB


イメージをプッシュ

$ docker push 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/t-kurihara/test01:latest

AWS管理コンソールからDockerイメージを確認しましょう。


参考