ECRとは、「AWSが管理するコンテナイメージレジストリサービス」。
「リポジトリの作成」〜「Dockerイメージのプッシュ」までの手順を解説します。
ECRリポジトリを作成する
AWS管理コンソールからECRリポジトリを作成する。
ECRリポジトリ作成手順
- ①可視性設定を「プライベート」にする。
今回はプライベートリポジトリとして作成します。イメージのスキャンなどもしたいため!
- ②リポジトリ名に適当な名前を付ける。今回は「study-infra」。
- ③イメージスキャンの設定を「有効」にする。
イメージプッシュ時にCVEに元づく脆弱性のスキャンをチェックしてくれる。(脆弱性を自動的に修正してくれるわけではないので注意!)
- ④暗号化設定を「有効」にする。
セキュリティ対策の1つとしてイメージを暗号化する。今回は独自のキーを使用しないでAWS管理のキーを使用する。
- ⑤リポジトリを作成する。
Dockerイメージを作成してECRリポジトリにプッシュする
1.Dockerの向き先をECRにする。
$ aws ecr get-login-password --profile switch-role-to-system-admin --region [リージョン] | docker login --username AWS --password-stdin [AWSアカウントID].dkr.ecr.[リージョン].amazonaws.com
2.Dockerイメージを作成する。
$ cat Dockerfile
===
FROM ruby:3.0.0-alpine3.12
RUN echo "test"
===
$ docker build -t study-infra .
3.作成したDockerイメージにタグを付ける。
$ docker tag study-infra:latest [AWSアカウントID].dkr.ecr.[リージョン].amazonaws.com/study-infra:latest
★コマンドの意味!
ローカルの「stduy-infra:latest」イメージに対して、リポジトリ名を「[AWSアカウントID].dkr.ecr.[リージョン].amazonaws.com/study-infra」、タグ名を「latest」として登録する。
4.ECRリポジトリにプッシュする。
$ docker push [AWSアカウントID].dkr.ecr.[リージョン].amazonaws.com/study-infra:latest
★コマンドの意味!
「[AWSアカウントID].dkr.ecr.[リージョン].amazonaws.com/study-infra:latest」とタグ付けされたイメージをECRリポジトリにプッシュする。(1の作業でECRリポジトリにログインしていないとプッシュできないので注意!)
5.ECRにプッシュされていることを確認する。
手順は以上です。ご参考まで!
コメント