docker-machineからGCPにプロビジョニングしてみよう

docker-machine を使用して、コマンド一発でGCPのComputeEngineのインスタンスにプロビジョニングする手順を紹介します。

まずはGCPのアカウントを作ろう

GCP公式サイトから、GCPのアカウントを作成してください。

ComputeEngineのプロジェクトを作成しよう

左メニュー -> ComputeEngine -> VM Instances を選択。
Create をクリック。
適当な名前を入力してCreateをクリック。
しばらく待つ。

ComputeEngineをターミナルから操作するための認証情報を取得する

左メニュ -> IAM & Admin -> Service Accountsを選択。
CreateServiceAccountを選択。
Service account nameを適当に入力。
RoleセレクトボックスProject -> Ownerを選択
Furnish a new private key にチェックを入れる。

画像と同じ感じで。

CERATEをクリックするとキーがダウンロードされるので第三者に漏洩しないように保管してください。

ProjectIDを保存

HOME -> Project InfoのところにあるProject IDを書き留めておいてください。

ターミナルからGCPを操作して行く

GCPアカウントを認証する

# GOOGLE_APPLICATION_CREDENTIALSにダウンロードした認証ファイルを
# 指定すると、自動で読み込んで認証してくれる。
export GOOGLE_APPLICATION_CREDENTIALS=/your_user_home_path/Docker\ ダウンロードしたファイル名.json

プロビジョニングして行く

# driverオプションにgoogleを指定すると、GCP上にマシンを作成しますよ。という意味になる。
# your-project-idにはさっきメモったIDを指定してください。
docker-machine create --driver google --google-project `your-project-id` --google-zone asia-northeast1-a myvm
eval $(docker-machine env myvm)

# webserverコンテナを作る。テストようにhello-world-nginxイメージを使ってる。
# コンテナの80番ポートを外部に8000番で公開している。
docker run -d -p 8000:80 webserver kitematic/hello-world-nginx

GCPのファイヤウォールで8000番ポートを公開する

ここまできたらGCPのインスタンスの8000番ポートでサーバにアクセスできるようになるはずなんですがGCPのファイヤウォールで8000番を解放するように設定しないと外部からアクセスできないので設定して行きましょう。

左上メニュー -> VPC Network -> Firewall rulesを選択。
CREATE FIREWALL RULEを選択。
名前は適当に入力してSource IP ranges0.0.0.0/0を入力
Specified protocols and portstcp:8000を入力。

作成されたサーバにアクセスする

以下のコマンドを叩いてください。

docker-machine ip myvm

表示されたIPアドレスの8000番ポートにアクセスして、Nginxのスタート画面が表示されたら完了です!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.