diff --git a/docs/dockermachine.md b/docs/dockermachine.md index ace918c06b..434f99cbd5 100644 --- a/docs/dockermachine.md +++ b/docs/dockermachine.md @@ -450,13 +450,189 @@ TODO: List all possible values (where applicable) for all flags for every driver. #### Amazon Web Services +Create machines on [Amazon Web Services](http://aws.amazon.com). You will need an Access Key ID, Secret Access Key and a VPC ID. To find the VPC ID, login to the AWS console and go to Services -> VPC -> Your VPCs. Select the one where you would like to launch the instance. + +Options: + + - `--amazonec2-access-key`: Your access key id for the Amazon Web Services API. + - `--amazonec2-ami`: The AMI ID of the instance to use Default: `ami-a00461c8` + - `--amazonec2-instance-type`: The instance type to run. Default: `t2.micro` + - `--amazonec2-region`: The region to use when launching the instance. Default: `us-east-1` + - `--amazonec2-root-size`: The root disk size of the instance (in GB). Default: `16` + - `--amazonec2-secret-key`: Your secret access key for the Amazon Web Services API. + - `--amazonec2-session-token`: Your session token for the Amazon Web Services API. + - `--amazonec2-vpc-id`: Your VPC ID to launch the instance in. + - `--amazonec2-zone`: The AWS zone launch the instance in (i.e. one of a,b,c,d,e). + #### Digital Ocean +Creates machines on [Digital Ocean](https://www.digitalocean.com/). You need to create a personal access token under "Apps & API" in the Digital Ocean Control Panel and pass that to `machine create` with the `--digitalocean-access-token` option. + +Options: + + - `--digitalocean-access-token`: Your personal access token for the Digital Ocean API. + - `--digitalocean-image`: The name of the Digital Ocean image to use. Default: `docker` + - `--digitalocean-region`: The region to create the droplet in. Default: `nyc3` + - `--digitalocean-size`: The size of the Digital Ocean driver. Default: `512mb` + #### Google Compute Engine +Create machines on [Google Compute Engine](https://cloud.google.com/compute/). You will need a Google account and project name. See https://cloud.google.com/compute/docs/projects for details on projects. + +The Google driver uses oAuth. When creating the machine, you will have your browser opened to authorize. Once authorized, paste the code given in the prompt to launch the instance. + +Options: + + - `--google-zone`: The zone to launch the instance. Default: `us-central1-a` + - `--google-machine-type`: The type of instance. Default: `f1-micro` + - `--google-username`: The username to use for the instance. Default: `docker-user` + - `--google-instance-name`: The name of the instance. Default: `docker-machine` + - `--google-project`: The name of your project to use when launching the instance. + #### IBM Softlayer + #### Microsoft Azure +Create machines on [Microsoft Azure](http://azure.microsoft.com/). + +You need to create a subscription with a cert. Run these commands: + + $ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem + $ openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name "My Certificate" + $ openssl x509 -inform pem -in mycert.pem -outform der -out mycert.cer + +Go to the Azure portal, go to the "Settings" page, then "Manage Certificates" and upload `mycert.cer`. + +Grab your subscription ID from the portal, then run `machine create` with these details: + + $ machine create -d azure --azure-subscription-id="SUB_ID" --azure-subscription-cert="mycert.pem" + +Options: + + - `--azure-subscription-id`: Your Azure subscription ID. + - `--azure-subscription-cert`: Your Azure subscription cert. + #### Openstack +Create machines on [Openstack](http://www.openstack.org/software/) + +Mandatory: + + - `--openstack-flavor-id`: The flavor ID to use when creating the machine + - `--openstack-image-id`: The image ID to use when creating the machine. + +Options: + + - `--openstack-auth-url`: Keystone service base URL. + - `--openstack-username`: User identifer to authenticate with. + - `--openstack-password`: User password. It can be omitted if the standard environment variable `OS_PASSWORD` is set. + - `--openstack-tenant-name` or `--openstack-tenant-id`: Identify the tenant in which the machine will be created. + - `--openstack-region`: The region to work on. Can be omitted if there is ony one region on the OpenStack. + - `--openstack-endpoint-type`: Endpoint type can be `internalURL`, `adminURL` on `publicURL`. If is a helper for the driver + to choose the right URL in the OpenStack service catalog. If not provided the default id `publicURL` + - `--openstack-net-id`: The private network id the machine will be connected on. If your OpenStack project project + contains only one private network it will be use automatically. + - `--openstack-sec-groups`: If security groups are available on your OpenStack you can specify a comma separated list + to use for the machine (e.g. `secgrp001,secgrp002`). + - `--openstack-floatingip-pool`: The IP pool that will be used to get a public IP an assign it to the machine. If there is an + IP address already allocated but not assigned to any machine, this IP will be chosen and assigned to the machine. If + there is no IP address already allocated a new IP will be allocated and assigned to the machine. + - `--openstack-ssh-user`: The username to use for SSH into the machine. If not provided `root` will be used. + - `--openstack-ssh-port`: Customize the SSH port if the SSH server on the machine does not listen on the default port. + - `--openstack-docker-install`: Boolean flag to indicate if docker have to be installed on the machine. Useful when + docker is already installed and configured in the OpenStack image. Default set to `true` + +Environment variables: + +Here comes the list of the supported variables with the corresponding options. If both environment variable +and CLI option are provided the CLI option takes the precedence. + +| Environment variable | CLI option | +|----------------------|-----------------------------| +| `OS_AUTH_URL` | `--openstack-auth-url` | +| `OS_USERNAME` | `--openstack-username` | +| `OS_PASSWORD` | `--openstack-password` | +| `OS_TENANT_NAME` | `--openstack-tenant-name` | +| `OS_TENANT_ID` | `--openstack-tenant-id` | +| `OS_REGION_NAME` | `--openstack-region` | +| `OS_ENDPOINT_TYPE` | `--openstack-endpoint-type` | + #### Rackspace +Create machines on [Rackspace cloud](http://www.rackspace.com/cloud) + +Options: + + - `--rackspace-username`: Rackspace account username + - `--rackspace-api-key`: Rackspace API key + - `--rackspace-region`: Rackspace region name + - `--rackspace-endpoint-type`: Rackspace endpoint type (adminURL, internalURL or the default publicURL) + - `--rackspace-image-id`: Rackspace image ID. Default: Ubuntu 14.10 (Utopic Unicorn) (PVHVM) + - `--rackspace-flavor-id`: Rackspace flavor ID. Default: General Purpose 1GB + - `--rackspace-ssh-user`: SSH user for the newly booted machine. Set to root by default + - `--rackspace-ssh-port`: SSH port for the newly booted machine. Set to 22 by default + +Environment variables: + +Here comes the list of the supported variables with the corresponding options. If both environment +variable and CLI option are provided the CLI option takes the precedence. + +| Environment variable | CLI option | +|----------------------|-----------------------------| +| `OS_USERNAME` | `--rackspace-username` | +| `OS_API_KEY` | `--rackspace-ap-key` | +| `OS_REGION_NAME` | `--rackspace-region` | +| `OS_ENDPOINT_TYPE` | `--rackspace-endpoint-type` | + #### VirtualBox +Creates machines locally on [VirtualBox](https://www.virtualbox.org/). Requires VirtualBox to be installed. + +Options: + + - `--virtualbox-boot2docker-url`: The URL of the boot2docker image. Defaults to the latest available version. + - `--virtualbox-disk-size`: Size of disk for the host in MB. Default: `20000` + - `--virtualbox-memory`: Size of memory for the host in MB. Default: `1024` + #### VMware Fusion +Creates machines locally on [VMware Fusion](http://www.vmware.com/products/fusion). Requires VMware Fusion to be installed. + +Options: + + - `--vmwarefusion-boot2docker-url`: URL for boot2docker image. + - `--vmwarefusion-disk-size`: Size of disk for host VM (in MB). Default: `20000` + - `--vmwarefusion-memory-size`: Size of memory for host VM (in MB). Default: `1024` + #### VMware vCloud Air +Creates machines on [vCloud Air](http://vcloud.vmware.com) subscription service. You need an account within an existing subscription of vCloud Air VPC or Dedicated Cloud. + +Options: + + - `--vmwarevcloudair-username`: vCloud Air Username. + - `--vmwarevcloudair-password`: vCloud Air Password. + - `--vmwarevcloudair-catalog`: Catalog. Default: `Public Catalog` + - `--vmwarevcloudair-catalogitem`: Catalog Item. Default: `Ubuntu Server 12.04 LTS (amd64 20140927)` + - `--vmwarevcloudair-computeid`: Compute ID (if using Dedicated Cloud). + - `--vmwarevcloudair-cpu-count`: VM Cpu Count. Default: `1` + - `--vmwarevcloudair-docker-port`: Docker port. Default: `2376` + - `--vmwarevcloudair-edgegateway`: Organization Edge Gateway. Default: `` + - `--vmwarevcloudair-memory-size`: VM Memory Size in MB. Default: `2048` + - `--vmwarevcloudair-name`: vApp Name. Default: `` + - `--vmwarevcloudair-orgvdcnetwork`: Organization VDC Network to attach. Default: `-default-routed` + - `--vmwarevcloudair-provision`: Install Docker binaries. Default: `true` + - `--vmwarevcloudair-publicip`: Org Public IP to use. + - `--vmwarevcloudair-ssh-port`: SSH port. Default: `22` + - `--vmwarevcloudair-vdcid`: Virtual Data Center ID. + #### VMware vSphere +Creates machines on a [VMware vSphere](http://www.vmware.com/products/vsphere) Virtual Infrastructure. Requires a working vSphere (ESXi and optionally vCenter) installation. The vSphere driver depends on [`govc`](https://github.com/vmware/govmomi/tree/master/govc) (must be in path) and has been tested with [vmware/govmomi@`c848630`](https://github.com/vmware/govmomi/commit/c8486300bfe19427e4f3226e3b3eac067717ef17). + +Options: + + - `--vmwarevsphere-username`: vSphere Username. + - `--vmwarevsphere-password`: vSphere Password. + - `--vmwarevsphere-boot2docker-url`: URL for boot2docker image. + - `--vmwarevsphere-compute-ip`: Compute host IP where the Docker VM will be instantiated. + - `--vmwarevsphere-cpu-count`: CPU number for Docker VM. Default: `2` + - `--vmwarevsphere-datacenter`: Datacenter for Docker VM (must be set to `ha-datacenter` when connecting to a single host). + - `--vmwarevsphere-datastore`: Datastore for Docker VM. + - `--vmwarevsphere-disk-size`: Size of disk for Docker VM (in MB). Default: `20000` + - `--vmwarevsphere-memory-size`: Size of memory for Docker VM (in MB). Default: `2048` + - `--vmwarevsphere-network`: Network where the Docker VM will be attached. + - `--vmwarevsphere-pool`: Resource pool for Docker VM. + - `--vmwarevsphere-vcenter`: IP/hostname for vCenter (or ESXi if connecting directly to a single host). +