5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker イメージを ECR に保存して実行する

Last updated at Posted at 2019-05-28

docker コマンドと aws コマンド (CLI) を使って、手元の Docker イメージを Elastic Container Registry (ECR) に保存して、とりあえずローカルで実行してみます。(2019年5月現在)

リポジトリの準備

先に AmazonEC2ContainerRegistryFullAccess 権限のついた IAM ユーザのアクセスキー ID・シークレットアクセスキーを取得しておきます。

# アクセスキー ID
export AWS_ACCESS_KEY_ID="xxxxxxxxxxxxxxxxxxxx"

# シークレットアクセスキー
export AWS_SECRET_ACCESS_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# 東京リージョン
export AWS_DEFAULT_REGION="ap-northeast-1"

# Docker を認証する → 「Login Succeeded」と表示されれば成功
aws ecr get-login --no-include-email | sh -v

# ECR 上にリポジトリを作る
aws ecr create-repository --repository-name myalpine

# ECR 上にリポジトリを消す
aws ecr delete-repository --repository-name myalpine

Docker イメージをアップロードする

# 適当なイメージを Docker Hub からダウンロードする
docker pull alpine:latest

# ローカルのイメージの一覧を確認する
docker images

# リポジトリにプッシュするイメージにタグを付ける
# `xxxxxxxxxxx` の部分は、AWS のアカウント ID です。
# `ap-northeast-1` の部分は、リージョン(東京)です。
docker tag alpine:latest xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/myalpine:latest

# 間違えたら、タグを消す(リージョンの指定を間違えた等)
docker image list
docker image rm xxxxxxxxxxx.dkr.ecr.wrong-region.amazonaws.com/myalpine:latest

# ECR にイメージをプッシュする。
# 「no basic auth credentials」が出たら認証の問題。リージョンが違うとか。
docker push xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/myalpine:latest

# プッシュした ECR のイメージを確認する
aws ecr list-images --repository-name myalpine

# ローカル側のタグをいちど消しておく
docker image rm -f xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/myalpine:latest

# ローカル側のタグが削除されたのを確認
docker image list

ECR からイメージをダウンロードして実行する

# ECR 上のイメージをそのまま実行してみる
docker run -it xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/myalpine:latest sh

# ECR からイメージをプルする
docker image pull xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/myalpine:latest

# ローカルのイメージが復活したことを確認する
docker image list

# ECR 上のイメージの削除
aws ecr batch-delete-image --repository-name myalpine --image-ids imageTag=latest

# ECR 上のリポジトリの削除
aws ecr delete-repository --repository-name myalpine

参考 → https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/ECR_AWSCLI.html

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?