【ECRとは?】使い方やpush手順を画像を使って解説【AWS】
![【ECRとは?】使い方やpush手順を画像を使って解説【AWS】](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F639f013556a941baa65d29b650dae51f%2Fa26996a3a6e342aab4a1e1a808464e5b%2F38.jpg&w=1920&q=75)
![吹き出しのイメージ](/_next/image?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F639f013556a941baa65d29b650dae51f%2F4d4fae30d53241c3abf5f89f207a141b%2Fanimal.webp&w=256&q=75)
AWSのECRって何?どうやってpushするの?
以前の記事では、AWSのLambdaについて紹介しました。
今回はAWSのECRについて紹介します。
ステップは以下の通りです。
- ECRとは
- pushする手順
- 作業簡略化
- Macのトラブルシューティング
ぜひ最後までご覧いただき、参考にしていただけると幸いです。
![](/images/blog/community.jpeg)
X:https://x.com/Aokumoblog
※人数が集まらなかった場合は、中止となる場合がございます。
ECRとは
ECRとはElastic Container Registryの略で、AWSが提供するDockerコンテナレジストリサービスです。ECRは、Dockerコンテナイメージの保存や管理を行うことができます。
ECRは単体で使用するというよりも、ECS(Elastic Container Service)を組み合わせてDockerで作成したウェブサイトをホスティングしたり、Lambda関数をDockerを使ってデプロイする際などに使用されます。
pushする手順
それでは実際にDockerコンテナをECRにプッシュしてみましょう。
AWS CLIが必要になるので、まだの方はインストールを完了してください。
ステップは以下の通りです。
- リポジトリの作成
- pushコマンドの確認
- ターミナルでコマンド実行
それぞれ解説します。
リポジトリの作成
まずはAWSコンソールのサービスから「Elastic Container Registry」を選んで、ページへ移動してください。
サイドバーから「リポジトリ」ページへ移動し、「リポジトリを作成」をクリックします。
![ecr](https://images.microcms-assets.io/assets/639f013556a941baa65d29b650dae51f/135806ca591d4da59729419f187ddbf8/822E1725-9E6F-4923-8D83-AF8C22F2E4A2_1_201_a.jpeg)
特に設定は変更せずに、リポジトリ名のみ設定して下さい。今回は例として「test」とします。
![ecr](https://images.microcms-assets.io/assets/639f013556a941baa65d29b650dae51f/5cb30597ca344d088fe808d28827a80f/D76094F0-7B1C-4433-BC2B-E75C6A90A7AD_1_201_a.jpeg?w=1024&h=435)
リポジトリ名を設定したら、「リポジトリを作成」をクリックしてリポジトリの作成を完了してください。
pushコマンドの確認
作成が完了すると、リポジトリのページに遷移します。
その中から「プッシュコマンドを表示」をクリックして、合計4つのpushコマンドを表示します。
![ecr](https://images.microcms-assets.io/assets/639f013556a941baa65d29b650dae51f/7fbdcf3b383544c9a558468ea8330b6e/9D6A8FD0-9621-4847-90A8-05B5D251B4CC_1_201_a.jpeg?w=1024&h=436)
この後の作業で使用するのでページを開いたままにしておきましょう。
ターミナルでコマンドを実行
それではpushしていきましょう。
pushしたいDockerコンテナのルートディレクトリへ移動します。これはDockerfileやdocker-compose.yamlがあるディレクトリです。そして、ターミナルを開き、先ほどのpushコマンドを1つずつ順番に4つ実行します。
これにてpushが完了します。もう一度AWSコンソールのリポジトリページに戻り、イメージが追加されていれば成功です。
作業簡略化
ECRにプッシュする際に4つのコマンドを全て実行する必要がありますが、何度も実行するのは手間がかかるため、シェルスクリプトを使って簡単に実行できるようにしましょう。
まず、Dockerファイルのルートディレクトリ内に commands.sh というシェルファイルを作成します。
次に、以下のようにECRのプッシュコマンドを上から順番に記述します。
コマンド1
コマンド2
コマンド3
コマンド4
それでは、このシェルを実行してみましょう。
ルートディレクトリ上のターミナルで実行を行います。まずは実行するために権限を設定する必要があるので、以下のコマンドを実行します。
chmod +x commands.sh
これで権限設定が完了したので、以下のコマンドでシェルを実行します
./commands.sh
これでシェルが実行され、4つのコマンドが全て順番に実行されます。
Macのトラブルシューティング
Macの場合、ECRを扱う上でエラーが出てしまう可能性があります。これはアーキテクチャの違いによるものです。
この問題を解決するために、pushコマンドのDockerビルドコマンドを以下のように変更してください。
変更前
docker build -t <リポジトリ名> .
変更後
docker build -t <リポジトリ名> --platform linux/x86_64 .
これで問題なく扱うことができるようになります。
最後に
ここまで、AWSのECRにDockerコンテナをpushする方法について紹介しました。
次回のAWSの記事では、このECRを使ってDockerで作成したコンテナをLambdaにデプロイする方法について紹介してみようと思います。
興味のある方はぜひご覧ください。
ここまでお読みいただき、ありがとうございました。