AWSでのdocker環境構築を行う方法 その3 ECR&docker編

開発1GのOです。 早いものでAWS&docker環境構築ももう3回目となりました。 といってもまだまだ折り返しくらいなのでもう少し環境構築も続きそうです。
さて今回はECRのdockerイメージをローカル環境にpullする方法についてやっていきたいと思います。 ローカル環境についてはWindows10 Proであることを想定しています 例によってECRにあるdockerイメージを使うのでECRにdockerイメージをpushする方法がわからない方は第2回の記事を参考にしてください

AWSでのdocker環境構築を行う方法 その2 CodeBuild編

前回までは結構長かったので今回は短めに行こうかと思います。

  1. 事前準備
  2. AWS CLI 準備
  3. dockerでECSからイメージをpullする
  4. おわりに

事前準備

さて本題に入る前にいくつか準備しておく必要があります。 必要な準備は以下の通りです。

  • ・ECRのリポジトリにdockerイメージをpushしておく
  • ・dockerをローカル環境にインストールしておく   ※今回はdocker for windowsを使用しています
  • ・ECRにアクセス可能なユーザーのアクセスキーIDとシークレットキーIDを用意しておく
この記事に興味があるということは上記は特に問題なく準備できるかと思います。

AWS CLI 準備

ECRにローカル環境からアクセスするためにAWS CLIを使用します そのためAWS CLIをインストールする必要があります。 インストール方法について下手に記載にするよりも公式の手順に従ったほうが確実なので以下のサイトの手順に従ってください。

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html

インストールが完了したらコマンドプロンプトから以下のコマンドを入力してください

===============
aws configure
===============

入力した場合、いくつか入力する必要があります。入力内容は以下の通りです。

  • AWS Access Key ID 用意しておいたアクセスキーのID
  • AWS Secret Access Key 用意しておいたシークレットアクセスキーの値
  • Default region name ap-northeast-1
  • Default output format json

リージョンはそれぞれ利用するリージョンを指定してください。 ここでは東京リージョンを使用しています。

・ローカル環境からECRにアクセスする方法

それではローカル環境からECRにアクセスする方法について解説していきます。 まずdockerにAWSログイン情報を付与する必要があるのでコマンドプロンプトで以下のコマンドを実行してください

===========================================================================
aws ecr get-login --no-include-email --region ap-northeast-1
===========================================================================

そうすると以下のようなコマンドが表示されます。
aws configure で登録したIDのユーザーに権限がない場合はここで失敗します。
※以下の画像は例として自分の環境で実行した際に表示されたコマンドの一部です

表示されたコマンドをコピーして実行してください。 成功すれば以下のようなメッセージが表示されます

自分の環境依存なのかどうかはわかりませんがここでログインがタイムアウトする場合はdockerの再起動を試してみてください。 そして注意点なのですがこのログイン情報は12時間しか保持されないようです。 なので翌日とかにまた接続したい場合は再度ログインコマンドの取得からやり直す必要があります。

dockerでECSからイメージをpullする

それではいよいよECSからイメージを取得していきたいと思います。 といってイメージのURIを打ち込むだけです。 コマンドは以下のようになるかと思います

======================================================================================
docker pull xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/xxxxxx:xxxxx
======================================================================================

イメージのURLはECRのイメージ一覧から参照できます 下記画像の「Image URI」の部分です。

ちなみにymlファイルから指定したい場合は以下のように書きます。

======================================================================================
version: '3'
services:
AWSTEST:
    image: xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/xxxxxx:xxxxx
    volumes:
    - ./src:/src
    ports:
    - "8000:80"
======================================================================================

おわりに

さて今回はECRからイメージを取得する方法を紹介してきました。 今回はwindowsからアクセスしましたがほぼ同じ方法でEC2のインスタンスからも取得できるのでE2にdocker環境を構築することができるようになります。
さて次回は少しdockerから離れてPHPのソースコードをCodeCommitからEC2にデプロイする方法について紹介したいと思います。

料金表ナビゲーション 料金表ナビゲーション

おすすめ記事