mirror of https://github.com/docker/docs.git
119 lines
6.8 KiB
Markdown
119 lines
6.8 KiB
Markdown
---
|
|
description: Microsoft Azure driver for machine
|
|
keywords: machine, Microsoft Azure, driver
|
|
title: Microsoft Azure
|
|
---
|
|
|
|
You need an Azure Subscription to use this Docker Machine driver.
|
|
[Sign up for a free trial.][trial]
|
|
|
|
> **NOTE:** This documentation is for the new version of the Azure driver, which started
|
|
> shipping with v0.7.0. This driver is not backwards-compatible with the old
|
|
> Azure driver. If you want to continue managing your existing Azure machines, please
|
|
> download and use machine versions prior to v0.7.0.
|
|
|
|
[azure]: http://azure.microsoft.com/
|
|
[trial]: https://azure.microsoft.com/free/
|
|
|
|
## Authentication
|
|
|
|
The first time you try to create a machine, Azure driver asks you to
|
|
authenticate:
|
|
|
|
$ docker-machine create --driver azure --azure-subscription-id <subs-id> <machine-name>
|
|
Running pre-create checks...
|
|
Microsoft Azure: To sign in, use a web browser to open the page https://aka.ms/devicelogin.
|
|
Enter the code [...] to authenticate.
|
|
|
|
After authenticating, the driver remembers your credentials up to two weeks.
|
|
|
|
> **KNOWN ISSUE:** There is a known issue with Azure Active Directory causing stored
|
|
> credentials to expire within hours rather than 14 days when the user logs in with
|
|
> personal Microsoft Account (formerly _Live ID_) instead of an Active Directory account.
|
|
> Currently, there is no ETA for resolution, however in the meanwhile you can
|
|
> [create an AAD account][aad-docs] and login with that as a workaround.
|
|
|
|
[aad-docs]: https://azure.microsoft.com/documentation/articles/virtual-machines-windows-create-aad-work-id/
|
|
|
|
## Options
|
|
|
|
Azure driver only has a single required argument to make things easier. Please
|
|
read the optional flags to configure machine details and placement further.
|
|
|
|
Required:
|
|
|
|
- `--azure-subscription-id`: **(required)** Your Azure Subscription ID.
|
|
|
|
Optional:
|
|
|
|
- `--azure-availability-set`: Azure Availability Set to place the virtual machine into. [[?][av-set]]
|
|
- `--azure-docker-port`: Port number for Docker engine.
|
|
- `--azure-environment`: Azure environment. For example, `AzurePublicCloud` or`AzureChinaCloud`.
|
|
- `--azure-image`: Azure virtual machine image in the format of Publisher:Offer:Sku:Version [[?][vm-image]]
|
|
- `--azure-location`: Azure region to create the virtual machine. [[?][location]]
|
|
- `--azure-no-public-ip`: Do not create a public IP address for the machine (implies `--azure-use-private-ip`). Should be used only when creating machines from an Azure VM within the same subnet.
|
|
- `--azure-open-port`: Make additional port number(s) accessible from the Internet [[?][nsg]]
|
|
- `--azure-private-ip-address`: Specify a static private IP address for the machine.
|
|
- `--azure-resource-group`: Azure Resource Group name to create the resources in.
|
|
- `--azure-size`: Size for Azure Virtual Machine. [[?][vm-size]]
|
|
- `--azure-ssh-user`: Username for SSH login.
|
|
- `--azure-static-public-ip`: Assign a static public IP address to the machine.
|
|
- `--azure-subnet`: Azure Subnet Name to be used within the Virtual Network.
|
|
- `--azure-subnet-prefix`: Private CIDR block. Used to create subnet if it does not exist. Must match in the case that the subnet does exist.
|
|
- `--azure-use-private-ip`: Use private IP address of the machine to connect. Useful for managing Docker machines from another machine on the same network, such as when deploying Swarm.
|
|
- `--azure-vnet`: Azure Virtual Network name to connect the virtual machine.
|
|
[[?][vnet]] To specify a Virtual Network from another resource group, use `resourcegroup:vnet-name` format.
|
|
|
|
[vm-image]: https://azure.microsoft.com/en-us/documentation/articles/resource-groups-vm-searching/
|
|
[location]: https://azure.microsoft.com/en-us/regions/
|
|
[vm-size]: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-size-specs/
|
|
[vnet]: https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-overview/
|
|
[av-set]: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/
|
|
|
|
#### Environment variables and default values
|
|
|
|
| CLI option | Environment variable | Default |
|
|
| ------------------------------- | ----------------------------- | ------------------ |
|
|
| `--azure-availability-set` | `AZURE_AVAILABILITY_SET` | `docker-machine` |
|
|
| `--azure-docker-port` | `AZURE_DOCKER_PORT` | `2376` |
|
|
| `--azure-environment` | `AZURE_ENVIRONMENT` | `AzurePublicCloud` |
|
|
| `--azure-image` | `AZURE_IMAGE` | `canonical:UbuntuServer:16.04.0-LTS:latest` |
|
|
| `--azure-location` | `AZURE_LOCATION` | `westus` |
|
|
| `--azure-no-public-ip` | - | - |
|
|
| `--azure-open-port` | - | - |
|
|
| `--azure-private-ip-address` | - | - |
|
|
| `--azure-resource-group` | `AZURE_RESOURCE_GROUP` | `docker-machine` |
|
|
| `--azure-size` | `AZURE_SIZE` | `Standard_A2` |
|
|
| `--azure-ssh-user` | `AZURE_SSH_USER` | `docker-user` |
|
|
| `--azure-static-public-ip` | - | - |
|
|
| `--azure-subnet-prefix` | `AZURE_SUBNET_PREFIX` | `192.168.0.0/16` |
|
|
| `--azure-subnet` | `AZURE_SUBNET` | `docker-machine` |
|
|
| **`--azure-subscription-id`** | `AZURE_SUBSCRIPTION_ID` | - |
|
|
| `--azure-use-private-ip` | - | - |
|
|
| `--azure-vnet` | `AZURE_VNET` | `docker-machine` |
|
|
|
|
## Notes
|
|
|
|
Azure runs fully on the new [Azure Resource Manager (ARM)][arm] stack. Each
|
|
machine created comes with a few more Azure resources associated with it:
|
|
|
|
* A [Virtual Network][vnet] and a subnet under it is created to place your
|
|
machines into. This establishes a local network between your docker machines.
|
|
* An [Availability Set][av-set] is created to maximize availability of your
|
|
machines.
|
|
|
|
These are created once when the first machine is created and reused afterwards.
|
|
Although they are free resources, driver does a best effort to clean them up
|
|
after the last machine using these resources is removed.
|
|
|
|
Each machine is created with a public dynamic IP address for external
|
|
connectivity. All its ports (except Docker and SSH) are closed by default. You
|
|
can use `--azure-open-port` argument to specify multiple port numbers to be
|
|
accessible from Internet.
|
|
|
|
Once the machine is created, you can modify [Network Security Group][nsg]
|
|
rules and open ports of the machine from the [Azure Portal][portal].
|
|
|
|
[arm]: https://azure.microsoft.com/en-us/documentation/articles/resource-group-overview/
|
|
[nsg]: https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-nsg/
|
|
[portal]: https://portal.azure.com/ |