こんにちは。Enjoy IT Life管理人の仁科(@nishina555)です。
AWS上にDocker環境を構築するにあたり、まずやるべきことがDockerリポジトリの作成です。
今回はAWSのDockerコンテナレジストリであるECRの使い方について紹介をします。
- AWS CLIの初回セットアップを完了させ、awsコマンドが実行できる環境を構築する
- ローカルでビルドしたDockerイメージをECRへpushする
目次
下準備: 検証用のDockerファイルを用意する
ECRへpushする検証用のDockerfileを準備します。
今回はWordPressのイメージwordpress:5.4.2-php7.3-apacheをベースに、wp-sample
という名前のDockerイメージを用意しました。
Dockerfile
FROM wordpress:5.2.2-php7.3-apache
WORKDIR /var/www/html
### Dockerファイルがあるディレクトリで以下を実行。
$ docker build -t wp-sample .
### Dockerイメージ一覧
$ docker images
→ wp-sampleが作成されていればOK
REPOSITORY TAG MAGE ID CREATED SIZE
wp-sample latest 997228f38b59 2 hours ago 598MB
AWS CLIをインストールと初回セットアップを行う
ECRへDockerイメージをpusuするにはAWS CLIを利用するため、事前にAWS CLIをインストールしておく必要があります。 ここではAWS CLIの初期設定の手順について紹介します。
まず、AWS『AWS CLI のインストール』を参考にAWS CLIをインストールします。
AWS CLIを利用するにはユーザー認証を行う必要があります。
認証にはアクセスキーとシークレットキーが必要になるため作成します。
IAMダッシュボードを開き、『ユーザー』→『認証情報』→『アクセスキーの作成』を選択します。
しばらくするとアクセスキーとシークレットキーのペアが画面に表示されるので控えておきます。
aws configure
を実行し、認証を行います。
$ aws configure
### 取得したアクセスキーを入力
> AWS Access Key ID [None]:
### 取得したシークレットキーを入力
> AWS Secret Access Key [None]:
### 以下は必要に応じて回答
> Default region name [None]:
> Default output format [None]:
これで認証は完了です。
AWS CLIを利用してECRへDockerイメージをpushする
ECRとはElastic Container Resistoryの略で、Dockerイメージを管理する機能です。
ECRを利用することにより自作のDockerイメージをAWS上で管理できます。
ECRのダッシュボードの『使用方法』を選択します。
リポジトリ名を入力し、『リポジトリを作成』を選択します。リポジトリ名がDockerのイメージ名になります。今回は wp-sample
というリポジトリ名にしました。
『イメージスキャンの設定』を有効にするとDockerイメージの脆弱性を自動でチェックしてくれます。
リポジトリ名をチェックし、『プッシュコマンドの表示』を選択するとコマンドが表示されます。
コマンドには以下のようなDockerイメージをECRにpushする手順が記載されています。
手順に従い、ローカルでDockerイメージをビルドし、ECRへpushします。
### 認証トークンを取得し、レジストリに対して Dockerクライアントを認証
$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin xxx.dkr.ecr.ap-northeast-1.amazonaws.com
→ 『Login Succeeded』と表示されればOK.
### DockerfileがあるディレクトリでDockerイメージのビルドを実行
$ docker build -t wp-sample .
# -t: イメージのタグ
### ローカルの「wp-sample:latest」イメージを、ECRの「wp-sample」リポジトリの「latest」とタグ付け
$ docker tag wp-sample:latest xxx.dkr.ecr.ap-northeast-1.amazonaws.com/wp-sample:latest
### タグ付けされたイメージの確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wp-sample latest 997228f38b59 About an hour ago 598MB
xxx.dkr.ecr.ap-northeast-1.amazonaws.com/wp-sample latest 997228f38b59 About an hour ago 598MB
→ ECRのリポジトリが登録されていればOK
### ECRにイメージをpush
$ docker push xxx.dkr.ecr.ap-northeast-1.amazonaws.com/wp-sample:latest
コマンド実行後、ECRにイメージが保存されていればOKです。
なお、Unable to locate credentials. You can configure credentials by running "aws configure"
というエラーメッセージが表示された場合はAWS CLIのユーザー認証が完了していない可能性があります。
前項の手順を参考にユーザー認証をまずは完了させてください。
まとめ
以上で、ローカルで作成したDockerイメージをECRへpushする手順の紹介を終わります。
- IAMユーザーのアクセスキーとシークレットキーを作成
- AWS CLIをインストール
- キーペアを利用してAWS CLIのユーザー認証を行う
- ECRにリポジトリを作成
- プッシュコマンドを実行
この記事がいいなと思いましたらツイッター(@nishina555)のフォローもよろしくお願いします!