「初老丸の独り Advent calendar 2015」の二十一日目の記事です。
tl;dr
ずっと待ってた Amazon EC2 Container Registory Service が来た!ので、ドキュメントを全く読まずに恐縮ですが触ってみた。(後ほど、いろいろと追記していくか別記事に書く)
Amazon EC2 Container Registry is now available to all customers! https://t.co/vxKxBbeC7Y pic.twitter.com/TcVkGRyPhv
— Amazon Web Services (@awscloud) 2015, 12月 21
aws.typepad.com
うれしい。クリスマスプレゼンツや。
使ってみた!
マネジメントコンソールからポチポチとリポジトリを作る
現時点では東京リージョンには来ていなかったのでヴァージニアで試すことにした。
ECS クラスタを作成するか ECR を作るかの選択肢。
リポジトリ名を入力する。
ビルドしてプッシュするまでの手順が丁寧に紹介されている。
完成。
aws-cli のバージョンアップ
事前に aws-cli のバージョンを上げておく必要があるので注意。
$ aws --version aws-cli/1.9.15 Python/2.7.6 Linux/3.13.0-55-generic botocore/1.3.15
ECR 関連のオプションは以下の通り。
- batch-check-layer-availability
- batch-delete-image
- batch-get-image
- complete-layer-upload
- create-repository
- delete-repository
- delete-repository-policy
- describe-repositories
- get-authorization-token
- get-download-url-for-layer
- get-login
- get-repository-policy
- initiate-layer-upload
- list-images
- put-image
- set-repository-policy
- upload-layer-part
ビルドしてポイ
まずは、ECS 連携ではなくて、手元の Docker イメージを push するだけを試す。
以下のように docker login
コマンドを取得する。
$ aws ecr get-login --region us-east-1
以下のように出力される。
docker login -u AWS -p xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -e none https://xxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com
出力されたコマンドを利用してログインする。
$ docker login -u AWS -p xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -e none https://xxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com
以下のように出力されてログイン完了。
WARNING: login credentials saved in /path/to/.docker/config.json Login Succeeded
適宜ビルドする。
$ docker build --no-cache=true -t oreno-registory .
tag を付ける。
$ docker tag oreno-es-index-snapshot:latest xxxxxxxxxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/oreno-registory:latest
あとは push する。
$ docker push xxxxxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/oreno-registory:latest The push refers to a repository [xxxxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/oreno-registory] (len: 1) 43737a875786: Pushed b370b48fdda0: Pushed b272a22d11f5: Pushed c761a8960a2c: Pushed e3c74b06a9ef: Pushed 60e97b91fc80: Pushed b794e346bfef: Pushed (snip) 5822f840e16b: Pushed 1565e86129b8: Pushed latest: digest: sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx size: 46605
プッシュ完了。
とっても簡単。
ということで
ずっと待ってた!
だけに年内に触れて嬉しい。
ぱっと触った感じだと
ふつうの Docker Registory と遜色無い。
権限などの設定
以下のように権限も設定できる。
ドキュメント
docs.aws.amazon.com
引き続き、さわっていく。