【AWS】Amazon ECR ~ 基本編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/05/22/165711

の続き。

今回は、Amazon ECR (Elastic Container Registry) に対して
色々な操作をメモる。

目次

【1】 ECR から イメージをプルする
 0)詳細手順
 1)Amazon ECR レジストリに対してログインする
 2)プルするイメージを識別する(オプション)
 3)docker pull コマンドを使用してイメージをプルする
【2】Tips
 1)Exportして、S3に送る(docker save)
 2)ECR にログインなしで接続する (amazon-ecr-credential-helper)

【1】 ECR から イメージをプルする

* ECR から EC2で docker pull するやり方を以下に記す

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

0)詳細手順

1)Amazon ECR レジストリに対してログインする
2)プルするイメージを識別する(オプション)
3)docker pull コマンドを使用してイメージをプルする

1)Amazon ECR レジストリに対してログインする

https://dk521123.hatenablog.com/entry/2020/05/22/165711

で行ったログインと同じ。

/usr/local/bin/aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin xxxx.xxx.ecr.us-west-2.amazonaws.com

2)プルするイメージを識別する(オプション)

# レジストリ内のリポジトリの確認
aws ecr describe-repositories --region us-west-1

# リポジトリ内のイメージ
aws ecr describe-images --repository-name hello-world-ecr --region us-west-1

3)docker pull コマンドを使用してイメージをプルする

# docker pull registry/repository[:tag]
docker pull xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr:latest

# 確認(「xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr」を確認)
docker images

【2】Tips

1)Exportして、S3に送る(docker save)

# Homeに移動し、Export
cd ~
docker save xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr:latest -o hello-world-ecr.tar

# S3にアップロード
aws s3 cp hello-world-ecr.tar s3://your-S3-bucket/backup/hello-world-ecr.tar

# 確認するために...
# 一旦Dockerイメージを削除
docker rmi xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr
# 削除できたか確認
docker images

# TarファイルをImportしてみる
docker load -i hello-world-ecr.tar
# 削除できたか確認
docker images

2)ECR にログインなしで接続する (amazon-ecr-credential-helper)

* amazon-ecr-credential-helper を使う

https://github.com/awslabs/amazon-ecr-credential-helper
設定手順例

# Step1: インストール
# apt の場合
$ sudo apt update
$ sudo apt install amazon-ecr-credential-helper
# Amazon Linux 2 (AL2)
# $ sudo amazon-linux-extras enable docker
# $ sudo yum install amazon-ecr-credential-helper

# Step2:設定ファイル追加
vi ~/.docker/config.json
# 「例:~/.docker/config.json」を参照

例:~/.docker/config.json

{
    "auths": {},
    "credsStore": {
            "xxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com": "ecr-login"
        }
}

関連記事

Amazon ECR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/22/165711
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 ~ Dockerイメージを Pull & Push ~
https://dk521123.hatenablog.com/entry/2023/12/02/024631
Amazon ECR ~ 別アカウントのECRにPull/Push ~
https://dk521123.hatenablog.com/entry/2024/05/14/232934
Amazon ECR ~ 別アカウントからInspector2を操作するには ~
https://dk521123.hatenablog.com/entry/2024/05/16/212100
Amazon ECR ~ AWS ECR Public Gallery ~
https://dk521123.hatenablog.com/entry/2024/04/08/184035
Amazon ECR ~ pull through cache rules ~
https://dk521123.hatenablog.com/entry/2024/04/09/141310
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
Docker ~ 基本編 / dockerコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Amazon S3AWS CLIでS3を操作する ~
https://dk521123.hatenablog.com/entry/2017/04/01/235355