Google Compute Engine

预计阅读时间:4分钟

Google Compute Engine上创建计算机。您需要一个Google帐户和一个项目ID。有关项目的详细信息,请参见https://cloud.google.com/compute/docs/projects

证书

Google驱动程序使用应用程序默认凭据 来获取授权凭据,以用于调用Google API。

因此,如果docker-machine从GCE主机使用,则通过内置服务帐户自动进行身份验证。否则,请安装gcloud并使用来完成oauth2进程gcloud auth login

或者,手动将凭据.json文件下载到本地,然后将GOOGLE_APPLICATION_CREDENTIALS环境变量点设置为其位置,例如:

export GOOGLE_APPLICATION_CREDENTIALS=$HOME/gce-credentials.json

例子

要创建机器实例,请指定--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-address:实例的静态外部IP(名称或IP)。
  • --google-disk-size:实例的磁盘大小。
  • --google-disk-type:实例的磁盘类型。
  • --google-machine-image:要实例化的基本VM映像的绝对URL。
  • --google-machine-type:实例的类型。
  • --google-network:指定要在其中配置VM的网络。
  • --google-preemptible:实例抢占。
  • --google-project必需启动实例时要使用的项目的ID。
  • --google-scopes:OAuth 2.0访问Google API的范围。请参阅Google Compute Engine文件
  • --google-subnetwork:指定要在其中配置VM的子网。
  • --google-tags:实例标签(以逗号分隔)。
  • --google-use-existing:不要创建新的VM,而要使用现有的VM。当您想在自己创建的VM上配置Docker时,这很有用,可能是因为它使用了该驱动程序不支持的创建选项。
  • --google-use-internal-ip-only:在创建过程中使用此选项时,不会为新VM分配公共IP地址。仅当正在运行的主机docker-machine位于Google Cloud基础架构内部时,此选项才有用。否则,docker-machine将无法访问VM来配置Docker守护程序。此标志的存在表示--google-use-internal-ip
  • --google-use-internal-ip:在创建过程中使用此选项时,docker-machine使用内部而不是公共NATed IP。在使用该标志创建的机器保留IP的意义上,该标志是持久的。这对于管理来自同一网络中另一台计算机的docker计算机非常有用,例如在部署swarm时。
  • --google-username:用于实例的用户名。
  • --google-zone:启动实例的区域。

ubuntu-1604-xenial-v20161130除非另有说明,否则GCE驱动程序将使用实例映像。要获取图像URL的列表,请运行:

gcloud compute images list --uri

Google Compute Engine支持图像系列。图像系列就像一个图像别名,该别名始终指向该系列中的最新图像。要从图像系列创建实例,请设置--google-machine-image为图像系列的URL。

以下命令显示图像及其所属的家族(如果有):

gcloud compute images list

要获取家庭网址,请在以下模板中替换<PROJECT><FAMILY>

https://www.googleapis.com/compute/v1/projects/<PROJECT>/global/images/family/<FAMILY>

例如,要从最新的Ubuntu 16 LTS映像创建实例,请指定 https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/family/ubuntu-1604-lts

环境变量和默认值

CLI选项 环境变量 默认
--google-address GOOGLE_ADDRESS --
--google-disk-size GOOGLE_DISK_SIZE 10
--google-disk-type GOOGLE_DISK_TYPE pd-standard
--google-machine-image GOOGLE_MACHINE_IMAGE ubuntu-1510-wily-v20151114
--google-machine-type GOOGLE_MACHINE_TYPE f1-standard-1
--google-network GOOGLE_NETWORK default
--google-preemptible GOOGLE_PREEMPTIBLE --
--google-project GOOGLE_PROJECT --
--google-scopes GOOGLE_SCOPES devstorage.read_only,logging.write
--google-subnetwork GOOGLE_SUBNETWORK --
--google-tags GOOGLE_TAGS --
--google-use-existing GOOGLE_USE_EXISTING --
--google-use-internal-ip GOOGLE_USE_INTERNAL_IP --
--google-username GOOGLE_USERNAME docker-user
--google-zone GOOGLE_ZONE us-central1-a
机器Google Compute Engine驱动