はじめに
ECRを触ってみた際に、タグのつけ方が曖昧だったのでまとめてみます。
ECRのタグ付け方法
前提として、AWS CLIをインストールしており、ECRのリポジトリは作成済みとします。
sampleというリポジトリを作成
ECRに認証するためのトークンを取得
以下のコマンドを実行することで、DockerクライアントはECRに対して認証され、ECRからイメージをプルしたり、ECRにプッシュしたりすることができるようになります。
このコマンドは「プッシュコマンドを表示」からも確認できます。
aws ecr get-login-password --region <your-region> | docker login --username AWS --password-stdin <your-account-id>.dkr.ecr.<your-region>.amazonaws.com
イメージをbuild
$ docker build -t sample_image .
イメージを確認
sample_imageという名前でTAGがlatestのimageが作成されていることが確認できます。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sample_image latest 6bf51095a382 9 hours ago 43.2MB
イメージにタグ付けする
新しくver1というタグが付いたものを作成します。
- sample_image:latest
sample_imageのlatestタグが付いているイメージを使用 - sample:ver1
sampleリポジトリにpushする際のタグをver1とする
docker tag sample_image:latest <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sample:ver1
新しく作成したタグのイメージを確認
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sample
でver1というタグをもつイメージがsample_image
とは別に作成されています。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sample ver1 6bf51095a382 10 hours ago 43.2MB
sample_image latest 6bf51095a382 10 hours ago 43.2MB
ECRにpushする
$ docker push <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sample:ver1
The push refers to repository [<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sample]
9368046b8500: Pushed
a51b172d7184: Pushed
b7486fe26981: Pushed
320c8baef084: Pushed
d2cef4a1b224: Pushed
4275164ce225: Pushed
6e92270dbfe6: Pushed
b5d2e1fcf1ad: Pushed
af9a70194aa4: Pushed
ECRを確認
まとめ
今回はver1という名前にして、pushしましたが、タグ付けする際にver2やver3といったものを作成して、pushすればそれぞれのタグのイメージがpushされます。
タグでversionを管理したい方には便利だと思います。