目的
ローカルで作成したdockerイメージ(webサーバなど)を作成し、Google Cloud へのアップし起動する方法を忘れるので、調べた内容をメモします
目次
- ローカルの docker イメージ を Google Container Registry にアップ
 - Google Cloud Console で GCE(VMインスタンス) の作成
 
事前準備
- Google Cloud Console で プロジェクトの作成
 - PC へ google cloud sdk(gcloud CLI) のインストール
 - docker の インストール
 - docker イメージを PC上に 作成済みと仮定
 
手順
1. ローカルの docker イメージ を Google Container Registry にアップ
アップする docker イメージ のタグづけ
Google Container Registry の サイトを参照すると以下の通りです。
docker tag [SOURCE_IMAGE] [HOSTNAME]/[PROJECT-ID]/[IMAGE]
ざっくり説明すると、、、
- SOURCE_IMAGE:ローカルの docker イメージの名称
 - HOSTNAME:Google Container Registry のローケーション。今回は一番安いusリージョンで対応することを前提とします
 - PROJECT-ID:Google Cloud Console で 作成した プロジェクトID
 - IMAGE:適切な名称
 
です。
具体的には以下のように、作成します(HOSTNAME以外のパラメータは適当です)。
docker tag test us.gcr.io/test-123456/test
イメージの push
事前準備として、Container Registry を認証する必要があり、gcloud を Docker 認証ヘルパーとして使用します。使用方法は以下の通りです。
gcloud auth configure-docker
Google Container Registery へ docker イメージを push します。
docker push us.gcr.io/test-123456/test
2. Google Cloud Console で GCE(VMインスタンス) の作成
GCE(VMインスタンスの作成)
Google Cloud Console にて、該当プロジェクト にて、
Compute Engine -> VMインスタンス
を選択する
インスタンス一覧画面にて、「インスタンスを作成」を選択する
以下を変更後、「作成」ボタンを選択する
- 名前:任意の名称
 - リージョン:us-east1
 - コンテナ:チェックを入れる
 - コンテナイメージ:pushしたdockerイメージ(us.gcr.io/test-123456/test)
 - マシンタイプ:micro(共有vCPU x 1)起動後、パフォーマンスが足りない時にはインスタンス一覧画面でリコメンドあり
 - ファイアウォール:HTTPトラフィックを許可
 
GCEのポートの解放
docker で 80ポート以外を利用している場合には、GCE のポートの開放が必要です。
今回は、default の http のポートに 8050 を追加します
※ 本来はファイアウォールルールを追加して、VMインスタンスでルールを指定する方が望ましいです
Google Cloud Console にて、該当プロジェクト にて、
VPNネットワーク -> ファイアウォール -> default-allow-http の項目を選択 -> 「編集」
を選択し
プロトコルとポート の 指定したプロトコルとポート を以下の通り、変更後、「保存」ボタンを押す。
tcp:80,8050
インスタンスの起動
Google Cloud Console にて、該当プロジェクト にて、
Compute Engine -> VMインスタンス
を選択し、作成したインスタンス に チェックを入れ、 右上の「開始」ボタンを押す
数分後、インスタンスが起動し、外部IP が振られるので、そのIPを利用し、接続確認を行なう
今後の課題
http での接続では、リクエスト/レスポンスの内容が丸見えになってしまい気持ちが悪いので、
GCE へのアクセスを https で接続したい



