Google Compute Engine¶
Google Compute Engine 上にマシンを作成します。Google アカウントとプロジェクト ID が必要になるでしょう。プロジェクトの詳細については https://cloud.google.com/compute/docs/projects をご覧ください。
証明書(Credentials)¶
Google ドライバは Google API を呼び出して使うために、 Application Default Credentials を用いて認証を行います。
そのため、 docker-machine
を GCE ホストから使う場合、サービス・アカウントに組み込まれている認証情報が自動的に使われます。あるいは、 gcloud をインストール し、 gcloud auth login
で oauth2 プロセスを通すこともできます。
例¶
マシン・インスタンスを作成するには、 --driver google
、プロジェクト ID 、マシン名を指定します。
$ gcloud auth login
$ docker-machine create --driver google --google-project PROJECT_ID vm01
$ docker-machine create --driver google \
--google-project PROJECT_ID \
--google-zone us-central1-a \
--google-machine-type f1-micro \
vm02
オプション¶
--google-project
: 必須 インスタンスを起動するとき似使うプロジェクト ID。--google-zone
: インスタンスを起動するゾーン。--google-machine-type
: インスタンスの種類。--google-machine-image
: インスタンスに使うベース VM イメージ用の絶対 URL 。--google-username
: インスタンスに使うユーザ名。--google-scopes
: Google API にアクセスする OAuth 2.0 の範囲(scope)。詳細は Google Compute Engine のドキュメント 。--google-disk-size
: インスタンスのディスク容量。--google-disk-type
: インスタンスのディスク種類。--google-address
: インスタンスの静的な外部 IP (名前か IP )--google-preemptible
: インスタンスの先行取得(preemptibility) 。--google-tags
: インスタンスのタグ(カンマ区切り)。--google-use-internal-ip
: 作成時にこのオプションを指定すると、docker-machine はパブリックの NAT 化された IP ではなく内部の IP を使う。フラグは常に一貫しており、マシン作成時の IP アドレスを保持します。これは Swarm をデプロイするなど、同じネットワーク上の複数のマシンを Docker Machine で管理するときに便利です。
GCE ドライバは、イメージの指定がなければ ubuntu-1510-wily-v20151114
インスタンス・イメージを使います。イメージの一覧を取得するには、次のコマンドを実行します。
gcloud compute images list --uri
利用可能な環境変数とデフォルト値は以下の通りです。
コマンドライン・オプション | 環境変数 | デフォルト値 |
---|---|---|
--google-project |
GOOGLE_PROJECT |
|
--google-zone |
GOOGLE_ZONE |
us-central1-a |
--google-machine-type |
GOOGLE_MACHINE_TYPE |
f1-standard-1 |
--google-machine-image |
GOOGLE_MACHINE_IMAGE |
ubuntu-1510-wily-v20151114 |
--google-username |
GOOGLE_USERNAME |
docker-user |
--google-scopes |
GOOGLE_SCOPES |
devstorage.read_only,logging.write |
--google-disk-size |
GOOGLE_DISK_SIZE |
10 |
--google-disk-type |
GOOGLE_DISK_TYPE |
pd-standard |
--google-address |
GOOGLE_ADDRESS |
|
--google-preemptible |
GOOGLE_PREEMPTIBLE |
|
--google-tags |
GOOGLE_TAGS |
|
--google-use-internal-ip |
GOOGLE_USE_INTERNAL_IP |