【ECRとは?】使い方やpush手順を画像を使って解説【AWS】

【ECRとは?】使い方やpush手順を画像を使って解説【AWS】

スポンサーリンク

記事内に広告が含まれています。
吹き出しのイメージ

AWSのECRって何?どうやってpushするの?

以前の記事では、AWSのLambdaについて紹介しました。

今回はAWSのECRについて紹介します。

ステップは以下の通りです。

  • ECRとは
  • pushする手順
  • 作業簡略化
  • Macのトラブルシューティング

ぜひ最後までご覧いただき、参考にしていただけると幸いです。

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

特に設定は変更せずに、リポジトリ名のみ設定して下さい。今回は例として「test」とします。

ecr

リポジトリ名を設定したら、「リポジトリを作成」をクリックしてリポジトリの作成を完了してください。

pushコマンドの確認

作成が完了すると、リポジトリのページに遷移します。

その中から「プッシュコマンドを表示」をクリックして、合計4つのpushコマンドを表示します。

ecr

この後の作業で使用するのでページを開いたままにしておきましょう。

ターミナルでコマンドを実行

それでは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にデプロイする方法について紹介してみようと思います。

興味のある方はぜひご覧ください。

ここまでお読みいただき、ありがとうございました。

スポンサーリンク

シェアする

フォローする

リアル大学生 - にほんブログ村人気ブログランキング

スポンサーリンク