3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita×Findy記事投稿キャンペーン 「今の開発組織でトライしたこと・トライしていること・トライしようとしていること」

Amazon ECR: ローカルにあるコンテナイメージをアップロードする手順

Last updated at Posted at 2024-03-18

自己紹介

Webエンジニアのインターンを始めて9カ月の大学生です。
インターンでは、プロダクトのソースコードを書いたり、
AWSを用いたシステムの構築を担当しています。
初投稿で至らない部分があるかもしれないですが、温かく見守っていただけると幸いです。

概要

ECRにローカルのコンテナイメージをアップロードする手順についてまとめました。

環境情報

mac M2

Amazon ECR

ECRとは

Amazon Elastic Container Registry (Amazon ECR)は、開発者がDockerコンテナイメージを簡単に保存、管理、デプロイできるようにする完全に管理されたサービスです。

参考: Dockerの全体像について

ECRを使う理由

アプリケーションをコンテナ化することで、開発から本番環境への移行をスムーズにし、どこでも同じ環境でアプリケーションを動かせるようにします。Amazon ECRは「コンテナ化されたアプリケーション」を管理する上で、非常に便利なサービスです。

ECRの主な使い方

  1. あなたのローカル環境からECRにDockerイメージをpushする
  2. ECRにpushされているイメージをpullする

ECRにアップロードする手順

1. ECRリポジトリの作成 (もしまだ存在しない場合)

AWS管理コンソールにログインし、ECRのダッシュボードにアクセスします。「リポジトリを作成」をクリックして、新しいリポジトリを作成します。リポジトリ名を指定し、必要に応じて他の設定を行います。

2. AWS CLIを使用してログイン

AWS CLIを設定するには、以下のコマンドを実行します。

aws configure

このコマンドを実行すると、AWSのアクセスキーID、シークレットアクセスキー、使用するAWSリージョン、出力フォーマット(例: json)を順に入力します。

AWS Access Key ID [None]: あなたのアクセスキーID
AWS Secret Access Key [None]: あなたのシークレットアクセスキー
Default region name [None]: 使用するリージョンの名前(例: ap-northeast-1)
Default output format [None]: 出力フォーマット(例: json)

参考: アクセスキーIDとシークレットアクセスキーの取得方法

次に、AWS CLIを使用してDockerをECRに認証させるには、aws ecr get-login-passwordコマンドを使ってログインパスワードを取得し、そのパスワードをDockerのdocker loginコマンドに渡します。

aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com

このプロセスは、ECRにDockerイメージをプッシュしたり、ECRからイメージをプルしたりする前に必要となります。

regionは、あなたのECRリポジトリが存在するAWSリージョン
accountはあなたのAWSアカウントID

に置き換えてください。AWSアカウントIDは、AWSマネジメントコンソールの右上に表示されています。

3. イメージのビルドとタグ付け

docker buildコマンドを使用します。このコマンドは、Dockerfileが存在するディレクトリで実行することが一般的です。

docker build -t <イメージ名>:<タグ> <ディレクトリのパス>

イメージ名はビルドするイメージの名前
タグはイメージのバージョンや環境などを示すタグ
ディレクトリのパスは Dockerfileが存在するディレクトリのパス

に置き換えてください。

既にビルドされたDockerイメージに新しいタグを付ける場合、docker tagコマンドを使用します。これは、特にリモートのリポジトリにプッシュする前、イメージにリポジトリのアドレスを含む完全なタグを付け直す際に利用します。

docker tag <既存のイメージ名>:<既存のタグ> <新しいイメージ名>:<新しいタグ>

既存のイメージ名 はタグを付け直す元のイメージ名
既存のタグ は元のイメージのタグ

ex. ECRにプッシュするため、イメージにタグを付け直す例

docker tag my-app:v1.0 <account>.dkr.ecr.<region>.amazonaws.com/my-app:v1.0

4.イメージのプッシュ

タグ付けされたイメージをECRにプッシュします。

docker push <AWSアカウントID>.dkr.ecr.<リージョン>.amazonaws.com/<リポジトリ名>:<タグ>

これらの手順を完了することで、DockerイメージがECRにプッシュされ、ECRを使用してイメージのバージョン管理や共有が行えるようになります。

最後に

初めての投稿で至らないところはあると思いますが、読んでいただきありがとうございました。今後、学んだことを積極的にアウトプットしていきたいと思っています。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?