ECRにdockerイメージを登録してみる
今回AWSのECRを利用してコンテナイメージを登録してみたいと思います。
ECRを利用することでコンテナイメージを皆と共有したり、デプロイしたりすることができます。
サンプルとしてApacheのコンテナを準備してやってみます。
ECRとは
Amazon Elastic Container Registry (ECR) はコンテナのイメージを保存・共有できるサービスです。Amazon Elastic Container Service (ECS)やAmazon Elastic Kubernetes Service (EKS)などと連携して保存したイメージからデプロイすることができます。
前提知識
- dockerの基本的な知識があること
実施した環境
実行手順
dockerコンテナを準備
まずはApacheのイメージを公式レジストリから取ってきます。
# docker pull httpd
docker imagesでイメージが追加されたのが分かります。
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest 683a7aad17d3 3 weeks ago 138MB
docker runでコンテナを起動し、ブラウザからhttp://localhostにアクセスすると、It works!と表示されるはずです
docker run -rm -p 80:80 httpd
このイメージをECRに登録します。
ECRにリポジトリを作成
AWSマネジメントコンソールからECRの画面を開きます。
「リポジトリを作成」ボタンをクリックします。
可視性設定に「プライベート」を選択、リポジトリ名に「httpd」を入力します。
画面下部の「リポジトリを作成」ボタンをクリックします。
作成したリポジトリが一覧に追加されました。
リポジトリを選択し画面上部の「プッシュコマンドの表示」をクリックします。
このリポジトリにイメージを登録するためのコマンドが4つ表示されます。
4つのコマンドをメモしておきましょう。
リポジトリにプッシュ
メモした4つのコマンドを実行していきます。
1つ目のコマンドでAWSへのdockerクライアント認証を行います。
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin xxx.ecr.ap-northeast-1.amazonaws.com
2つ目のコマンドでビルドします。今回はApacheのイメージをそのままECRに登録するので実施不要です。
docker build -t httpd .
3つ目のコマンドECRのhttpdリポジトリについてlatestというタグ付けを行います。
タグはv1, v2のようにバージョンとすると運用しやすくなります。
docker tag httpd:latest xxx.ecr.ap-northeast-1.amazonaws.com/httpd:latest
4つ目のコマンドで作成したタグをECRにプッシュします。
docker push xxx.ecr.ap-northeast-1.amazonaws.com/httpd:latest
ECRの画面を確認するとプッシュしたタグが追加されているのが分かります。