時と場合によりけり

日々のアップデートとイノベーションに翻弄され彷徨える IT エンジニアの覚書

ECS ( Amazon EC2 Container Service ) で Docker イメージを管理する

概要

前回のエントリーで、Docker イメージを DockerHub で管理する設定をしました。

stangler.hatenablog.com

今回は、ECS ( Amazon EC2 Container Service ) でイメージを管理する設定です。パブリックに晒したくないイメージ(例えば、イメージ内に SSH の鍵を保持している、DB へアクセスするためのパスワードを内包しているなど)の場合は、ECS で管理する方が、良いと思います。

以下のエントリーでアップしたイメージを例として使用します。

stangler.hatenablog.com

ハードウェア

  • マシン: Macbook Pro Early 2011
  • メモリ: 16 GB
  • ストレージ: SSD 512 GB

ホスト

  • OS: macOS 10.12.1 Sierra
  • Docker for Mac Version 1.12.3

ゲスト

前提条件

  • AWS にアカウントがあること

参考 URL

http://dev.classmethod.jp/cloud/aws/ecr-available-tokyo-region/

サービス開始

f:id:stangler:20170119110452p:plain

EC2 Container Service > 設定するオプションの選択

Amazon ECR によりコンテナイメージをセキュアに保存する」にチェックを入れる

f:id:stangler:20170119110706p:plain

ステップ1: リポジトリの設定

f:id:stangler:20170119111415p:plain

ステップ2: Docker イメージの構築、タグ付け、プッシュ

f:id:stangler:20170119111657p:plain

完了をクリックで完成。

f:id:stangler:20170119112049p:plain

プッシュコマンドの表示

「プッシュコマンドの表示」ボタンをクリックすると「ステップ2」で表示されていたコマンド使用方法が表示されるので、これをコピペすれば簡単にイメージの設定ができます。

f:id:stangler:20170119112223p:plain

ログイン情報取得

ターミルで以下のコマンドを打つ。

% $(aws ecr get-login --region ap-northeast-1)
docker login -u AWS -p 
(中略)
XXXXXXXXXX.ecr.ap-northeast-1.amazonaws.com

●ログイン情報確認

% cat ~/.docker/config.json
{
    "auths": {
        "https://XXXXXXXXXX.ecr.ap-northeast-1.amazonaws.com": {
            "auth": "(中略)"
        }
    }
}

ログイン

% $(aws ecr get-login --region ap-northeast-1)
Flag --email has been deprecated, will be removed in 1.13.
Login Succeeded

イメージにタグを付ける

まずはローカルのイメージを確認。

% docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
hatena01_web-hatena01     latest              3cf1b4258e7c        43 hours ago        965.4 MB

確認した IMAGE ID を使用してタグを付ける。

% docker tag 3cf1b4258e7c XXXXXXXXXXXXXXX.ecr.ap-northeast-1.amazonaws.com/rails-hatena01:latest

うまくできたかどうかを確認

% docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             SIZE
XXXXXXXXXXXXXXXXX.ecr.ap-northeast-1.amazonaws.com/rails-hatena01   latest              3cf1b4258e7c        43 hours ago        965.4 MB
hatena01_web-hatena01                                              latest              3cf1b4258e7c        43 hours ago        965.4 MB

●プッシュ

ECS にプッシュする。

% docker push XXXXXXXXXXXXXXXXX.ecr.ap-northeast-1.amazonaws.com/rails-hatena01:latest

確認

f:id:stangler:20170119113317p:plain

これで登録完了です!