AWSで提供されているECR(EC2 Container Registry)を使ってみました。
リージョン
今のところus-east-1のみでの提供です。 Tokyo(ap-northeast-1)にもきました。
事前準備
aws cliのconfigureでecr用のプロファイルを作成しておくと便利です。
※リージョンを聞かれるので、us-east-1を指定して下さい。
利用したいリージョンを指定します。
aws configure --profile ecr
リポジトリ作成
とりあえず初めてなので、AWSマネージメントコンソールから作成しました。
手順
- AWSマネージメントコンソールにアクセス
2. 右上のリージョンをUS EAST(N. Virginia)に変更 - 右上のリージョンを選択
- ECSサービスを選択
- 左サイドバーの Repositories を選択
- Create repositoryボタン押下
作成するとその後の操作方法がコマンドライン表記で表示されます。
ECRへDockerイメージをプッシュ
表示された操作方法を元にイメージをプッシュします。
ECRにログイン
まずは最初に表示されているコマンドを実行
aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $REGISTRY_URL
そうするとレスポンスにログイン用コマンドがコマンドラインに表示されるので、それをそのまま実行するとログインが完了します。
プッシュするイメージを作成
ここで作成するイメージ名は、前段で作成したECRのリポジトリ名に合わせてください。
docker build -t 【イメージ名】 .
ECRにプッシュする為のタグを追加
docker tag 【イメージ名】:latest ************.dkr.ecr.$REGION.amazonaws.com/【イメージ名】:latest
ECRにプッシュ
docker push ************.dkr.ecr.$REGION.amazonaws.com/【イメージ名】:latest
ECRからプル
docker pull ************.dkr.ecr.$REGION.amazonaws.com/【イメージ名】:latest
結果
うまくいきました!
会社等外部へ公開できない環境ででDocker運用する際などはprivate registoryを運用しないといけませんが、運用コスト等考えるとなかなか手がつけづらい部分でした。
だがしかしECRでかなり捗りそうですね!
追記
記事が古いですね。申し訳ありません。tokyoリージョンでもできます!最高!Fooooo!
これにより、今いる会社では本番環境でもECSでイメージ保存から実際の運用、サービス提供までやっています!コンテナで運用するとリソースの無駄遣いがマジでなくなりますね!感激!