AWS Cloud9でコンテナイメージを作ってAWS ECRにプッシュしてみた
はじめに
こんにちは!みゃっちーです。🦔
今回はコンテナイメージをECRにアップロードしてみたいと思います。
AWS ECRとは?
公式の説明は下記の通りです。
コンテナソフトウェアをどこにでも簡単に保存、共有、デプロイできる
AWS Cloud9とは?
公式の説明は下記の通りです。
コードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE)
やってみた
1.ECRのリポジトリを作成する
マネジメントコンソールから「ECR」と検索し、ECRのプライベートリポジトリを作成をクリックする。
各設定項目はこのようにしました。
- 可視性設定: private
- リポジトリ名: docker_test_repository
- タグのイミュータビリティ: オフ
- イメージスキャンの設定: オフ
- KMS 暗号化: オフ
タグのイミュータビリティ
同じタグを登録できなくなる
例:イメージAを更新してプッシュしようとしても、v1.0タグがすでに存在場合は上書きされず、v1.2などの新しいタグが必要になる。
イメージスキャンの設定
各イメージがリポジトリにプッシュされた後に自動的にスキャンが行われ、セキュリティスキャンが自動的に実行される。脆弱性やセキュリティの問題を検出に役立つ。
設定を行うとこのようにリポジトリの作成が完了します。
2.Cloud9環境を立ち上げる
マネジメントコンソールからCloud9を選択し、作成をクリック
各設定項目はこのようにしました。
- 名前: Docker_test
- 環境タイプ: 新しいEC2インスタンス
- インスタンスタイプ: t2.micro
- プラットフォーム: Amazon Linux 2023
- タイプアウト: 30分
- 接続方法: SSM
設定が完了し、正常に作成されたことが確認できたら「開く」をクリックします。
サンプルDockerfileの作成
環境が立ち上がったらDockerfileを作成。今回はこちらのテンプレートを使用しました
この先実行するコマンドはECR対象のECRリポジトリのこちらに記載されており、コピーで切るようになっています。
ECRのレジストリに対してDockerクライアント認証
まず初めに認証トークンを取得し、レジストリに対して Docker クライアントを認証します。
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 006226380476.dkr.ecr.us-east-1.amazonaws.com
Docker Imageの作成
次に下記のCLIを実行し、Docker imageを作成します。
docker build -t <ECR の URL>:<バージョン Tag> .
リポジトリへのプッシュ
最後にリポジトリにイメージをプッシュします。
docker push 006226380476.dkr.ecr.us-east-1.amazonaws.com/docker_test_repository:<バージョン Tag>
確認
そうすると先ほど作成したECRにコンテナイメージが追加されていることがわかります。
さいごに
思っていたより簡単にできてよかったです。
他のコンテナ関係のサービスもこの際触ってみたいと思います。
読んでいただきありがとうございました!
Discussion