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 で管理するときに便利です。

  • --google-use-existing : 新しい仮想マシンを作成せず、既存のものを使います。自分で Docker が動く仮想マシンのプロビジョンには便利かもしれませんが、ドライバを使って作成時のオプションはサポートされていません。

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

--google-use-existing

GOOGLE_USE_EXISTING

参考

Google Compute Engine

https://docs.docker.com/machine/drivers/gce/