【AWS】Amazon ECR ~ 入門編 ~

■ はじめに

CodeBuild で、カスタム Docker ビルドイメージを
使用する必要ができたのだが、
その際に、Amazon ECR が必要らしいので、勉強する。

なお、Amazon EMRではない。
(似通ったサービス名が、増えてややっこしいんだよなー)

https://dk521123.hatenablog.com/entry/2020/02/20/230519

追記:CodeBuild でカスタムイメージを使う

以下の関連記事を参照のこと

CodeBuild で カスタムDockerイメージを使ってビルドする
https://dk521123.hatenablog.com/entry/2020/05/23/080655

目次

【1】Amazon ECR (Elastic Container Registry)
 1)公式サイト
 2)料金
【2】Dockerイメージ登録の流れ
 1)前提条件
 2)ローカル上にある Docker イメージをECRにPush
 3)ECR上のDockerイメージをPull

【1】Amazon ECR (Elastic Container Registry)

* Dockerコンテナイメージを保存しておくためのレジストリサービス
(AWS版Docker Hub的な?)

1)公式サイト

ユーザズガイドは以下。

https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/ecr-ug.pdf

2)料金

無料枠もあるので、Docker Hubと比べてもお安い

公式サイト:料金
https://aws.amazon.com/jp/ecr/pricing/
比較対象:Docker Hubの料金
https://hub.docker.com/pricing

【2】Dockerイメージ登録の流れ

* Docker イメージのECRへの登録までのざっくりな流れについて示す
* 詳細な流れは、以下の関連記事を参照のこと

Amazon ECR ~ Dockerイメージを Pull & Push ~
https://dk521123.hatenablog.com/entry/2023/12/02/024631

1)前提条件

* 前提条件は、以下の通り。

[1] 既に、ECRのリポジトリを作成してあること
[2] Docker がインストールされていること

2)ローカル上にある Docker イメージをECRにPush

https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-push-ecr-image.html

# Step1: Login
aws ecr get-login-password --region us-west-2 | sudo docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

# Step2: イメージを一覧表示
sudo docker images

# Step3: Amazon ECR レジストリ、リポジトリ、
# およびオプションのイメージタグ名を組み合わせたタグをイメージに付与
# docker tag <ImageID> aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository:tag
docker tag e9ae3c220b23 aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository:tag

# Step4: Push
docker push aws_account_id.dkr.ecr.us-west-2.amazonaws.com/my-repository:tag

3)ECR上のDockerイメージをPull

https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-pull-ecr-image.html

# Step1: Login
aws ecr get-login-password --region us-west-2 | sudo docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

# Step2: Pull
# イメージ名の形式は、タグを使用してプルする場合は registry/repository[:tag]
docker pull aws_account_id.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest

参考文献

https://qiita.com/3utama/items/b19e2239edb6996a735f
http://blog.serverworks.co.jp/tech/2020/01/23/ecr/
https://yenjoji.github.io/pages/2016/07/26/20160725-ecr-101/
https://blog.websandbag.com/entry/2019/06/04/231201
https://qiita.com/aokad/items/17a06c2384041bd60d16
Dockerイメージの登録
https://qiita.com/Esfahan/items/2ddc8d481afd012da357
https://qiita.com/KJN/items/ad4aeb01c39bb5909de4
https://dev.classmethod.jp/articles/push-docker-image-to-ecr-with-cli/

関連記事

Amazon ECR ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/05/26/142645
Amazon ECR ~ Dockerイメージを Pull & Push ~
https://dk521123.hatenablog.com/entry/2023/12/02/024631
Amazon ECR ~ AWS CLI
https://dk521123.hatenablog.com/entry/2024/01/05/000000
Amazon ECR ~ boto3 ~
https://dk521123.hatenablog.com/entry/2024/01/31/014010
Amazon ECR ~ 脆弱性診断 / Amazon Inspector ~
https://dk521123.hatenablog.com/entry/2024/01/22/210831
Terraform ~ AWS ECR ~
https://dk521123.hatenablog.com/entry/2023/05/23/002314
Amazon ECR でのトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/05/24/000000
CodeBuild で カスタムDockerイメージを使ってビルドする
https://dk521123.hatenablog.com/entry/2020/05/23/080655
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ Linux / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2018/04/10/234030
Docker ~ 基本編 / Dockerfile ~
https://dk521123.hatenablog.com/entry/2020/04/14/000000
Docker ~ 基本編 / dockerコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Docker ~ 基本編 / レポジトリに関するコマンド ~
https://dk521123.hatenablog.com/entry/2023/01/21/000000
Docker ~ docker を sudo なしで実行する ~
https://dk521123.hatenablog.com/entry/2023/11/22/000000
AWS CloudFormation ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/10/26/224812
Amazon ECS / Fargate ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2022/04/03/000000