mirror of https://github.com/docker/docs.git
Merge pull request #2435 from dgageot/lint-markdown
Lint all Markdown documents
This commit is contained in:
commit
e9470d3b26
367
CHANGELOG.md
367
CHANGELOG.md
|
@ -1,150 +1,157 @@
|
||||||
Changelog
|
# Changelog
|
||||||
==========
|
|
||||||
|
|
||||||
# 0.5.1 (2015-11-16)
|
# 0.5.1 (2015-11-16)
|
||||||
|
|
||||||
- Fixed boot2docker VM import regression
|
- Fixed boot2docker VM import regression
|
||||||
- Fix regression breaking `docker-machine env -u` to unset environment variables
|
- Fix regression breaking `docker-machine env -u` to unset environment variables
|
||||||
- Enhanced virtualization capability detection and `VBoxManage` path detection
|
- Enhanced virtualization capability detection and `VBoxManage` path detection
|
||||||
- Properly lock VirtualBox access when running several commands concurrently
|
- Properly lock VirtualBox access when running several commands concurrently
|
||||||
- Allow plugins to write to STDOUT without `--debug` enabled
|
- Allow plugins to write to STDOUT without `--debug` enabled
|
||||||
- Fix Rackspace driver regression
|
- Fix Rackspace driver regression
|
||||||
- Support colons in `docker-machine scp` filepaths
|
- Support colons in `docker-machine scp` filepaths
|
||||||
- Pass environment variables for provisioned Engines to Swarm as well
|
- Pass environment variables for provisioned Engines to Swarm as well
|
||||||
- Various enhancements around boot2docker ISO upgrade (progress bar, increased timeout)
|
- Various enhancements around boot2docker ISO upgrade (progress bar, increased timeout)
|
||||||
|
|
||||||
# 0.5.0 (2015-11-1)
|
# 0.5.0 (2015-11-1)
|
||||||
|
|
||||||
- General
|
- General
|
||||||
- Add pluggable driver model
|
- Add pluggable driver model
|
||||||
- Clean up code to be more modular and reusable in `libmachine`
|
- Clean up code to be more modular and reusable in `libmachine`
|
||||||
- Add `--github-api-token` for situations where users are getting rate limited
|
- Add `--github-api-token` for situations where users are getting rate limited
|
||||||
by GitHub attempting to get the current `boot2docker.iso` version
|
by GitHub attempting to get the current `boot2docker.iso` version
|
||||||
- Various enhancements around the Makefile and build toolchain (still an active WIP)
|
- Various enhancements around the Makefile and build toolchain (still an active WIP)
|
||||||
- Disable SSH multiplex explicitly in commands run with the "External" client
|
- Disable SSH multiplex explicitly in commands run with the "External" client
|
||||||
- Show "-" for "inactive" machines instead of nothing
|
- Show "-" for "inactive" machines instead of nothing
|
||||||
- Make daemon status detection more robust
|
- Make daemon status detection more robust
|
||||||
- Provisioners
|
- Provisioners
|
||||||
- New CoreOS, SUSE, and Arch Linux provisioners
|
- New CoreOS, SUSE, and Arch Linux provisioners
|
||||||
- Fixes around package installation / upgrade code on Debian and Ubuntu
|
- Fixes around package installation / upgrade code on Debian and Ubuntu
|
||||||
- CLI
|
- CLI
|
||||||
- Support for regular expression pattern matching and matching by names in `ls --filter`
|
- Support for regular expression pattern matching and matching by names in `ls --filter`
|
||||||
- `--no-proxy` flag for `env` (sets `NO_PROXY` in addition to other environment variables)
|
- `--no-proxy` flag for `env` (sets `NO_PROXY` in addition to other environment variables)
|
||||||
- Drivers
|
- Drivers
|
||||||
- `openstack`
|
- `openstack`
|
||||||
- `--openstack-ip-version` parameter
|
- `--openstack-ip-version` parameter
|
||||||
- `--openstack-active-timeout` parameter
|
- `--openstack-active-timeout` parameter
|
||||||
- `google`
|
- `google`
|
||||||
- fix destructive behavior of `start` / `stop`
|
- fix destructive behavior of `start` / `stop`
|
||||||
- `hyperv`
|
- `hyperv`
|
||||||
- fix issues with PowerShell
|
- fix issues with PowerShell
|
||||||
- `vmwarefusion`
|
- `vmwarefusion`
|
||||||
- some issues with shared folders fixed
|
- some issues with shared folders fixed
|
||||||
- `--vmwarefusion-configdrive-url` option for configuration via `cloud-init`
|
- `--vmwarefusion-configdrive-url` option for configuration via `cloud-init`
|
||||||
- `amazonec2`
|
- `amazonec2`
|
||||||
- `--amazonec2-use-private-address` option to use private networking
|
- `--amazonec2-use-private-address` option to use private networking
|
||||||
- `virtualbox`
|
- `virtualbox`
|
||||||
- Enhancements around robustness of the created host-only network
|
- Enhancements around robustness of the created host-only network
|
||||||
- Fix IPv6 network mask prefix parsing
|
- Fix IPv6 network mask prefix parsing
|
||||||
- `--virtualbox-no-share` option to disable the automatic home directory mount
|
- `--virtualbox-no-share` option to disable the automatic home directory mount
|
||||||
- `--virtualbox-hostonly-nictype` and `--virtualbox-hostonly-nicpromisc` for controlling settings around the created hostonly NIC
|
- `--virtualbox-hostonly-nictype` and `--virtualbox-hostonly-nicpromisc` for controlling settings around the created hostonly NIC
|
||||||
|
|
||||||
# 0.4.1 (2015-08)
|
# 0.4.1 (2015-08)
|
||||||
|
|
||||||
- Fixes `upgrade` functionality on Debian based systems
|
- Fixes `upgrade` functionality on Debian based systems
|
||||||
- Fixes `upgrade` functionality on Ubuntu based systems
|
- Fixes `upgrade` functionality on Ubuntu based systems
|
||||||
|
|
||||||
# 0.4.0 (2015-08-11)
|
# 0.4.0 (2015-08-11)
|
||||||
|
|
||||||
## Updates
|
## Updates
|
||||||
- HTTP Proxy support for Docker Engine
|
|
||||||
- RedHat distros now use Docker Yum repositories
|
- HTTP Proxy support for Docker Engine
|
||||||
- Ability to set environment variables in the Docker Engine
|
- RedHat distros now use Docker Yum repositories
|
||||||
- Internal libmachine updates for stability
|
- Ability to set environment variables in the Docker Engine
|
||||||
|
- Internal libmachine updates for stability
|
||||||
|
|
||||||
## Drivers
|
## Drivers
|
||||||
- Google:
|
|
||||||
- Preemptible instances
|
- Google:
|
||||||
- Static IP support
|
- Preemptible instances
|
||||||
|
- Static IP support
|
||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
- Swarm Discovery Flag is verified
|
|
||||||
- Timeout added to `ls` command to prevent hangups
|
- Swarm Discovery Flag is verified
|
||||||
- SSH command failure now reports information about error
|
- Timeout added to `ls` command to prevent hangups
|
||||||
- Configuration migration updates
|
- SSH command failure now reports information about error
|
||||||
|
- Configuration migration updates
|
||||||
|
|
||||||
# 0.3.0 (2015-06-18)
|
# 0.3.0 (2015-06-18)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
- Engine option configuration (ability to configure all engine options)
|
|
||||||
- Swarm option configuration (ability to configure all swarm options)
|
- Engine option configuration (ability to configure all engine options)
|
||||||
- New Provisioning system to allow for greater flexibility and stability for installing and configuring Docker
|
- Swarm option configuration (ability to configure all swarm options)
|
||||||
- New Provisioners
|
- New Provisioning system to allow for greater flexibility and stability for installing and configuring Docker
|
||||||
- Rancher OS
|
- New Provisioners
|
||||||
- RedHat Enterprise Linux 7.0+ (experimental)
|
- Rancher OS
|
||||||
- Fedora 21+ (experimental)
|
- RedHat Enterprise Linux 7.0+ (experimental)
|
||||||
- Debian 8+ (experimental)
|
- Fedora 21+ (experimental)
|
||||||
- PowerShell support (configure Windows Docker CLI)
|
- Debian 8+ (experimental)
|
||||||
- Command Prompt (cmd.exe) support (configure Windows Docker CLI)
|
- PowerShell support (configure Windows Docker CLI)
|
||||||
- Filter command help by driver
|
- Command Prompt (cmd.exe) support (configure Windows Docker CLI)
|
||||||
- Ability to import Boot2Docker instances
|
- Filter command help by driver
|
||||||
- Boot2Docker CLI migration guide (experimental)
|
- Ability to import Boot2Docker instances
|
||||||
- Format option for `inspect` command
|
- Boot2Docker CLI migration guide (experimental)
|
||||||
- New logging output format to improve readability and display across platforms
|
- Format option for `inspect` command
|
||||||
- Updated "active" machine concept - now is implicit according to `DOCKER_HOST` environment variable. Note: this removes the implicit "active" machine and can no longer be specified with the `active` command. You change the "active" host by using the `env` command instead.
|
- New logging output format to improve readability and display across platforms
|
||||||
- Specify Swarm version (`--swarm-image` flag)
|
- Updated "active" machine concept - now is implicit according to `DOCKER_HOST` environment variable. Note: this removes the implicit "active" machine and can no longer be specified with the `active` command. You change the "active" host by using the `env` command instead.
|
||||||
|
- Specify Swarm version (`--swarm-image` flag)
|
||||||
|
|
||||||
## Drivers
|
## Drivers
|
||||||
- New: Exoscale Driver
|
|
||||||
- New: Generic Driver (provision any host with supported base OS and SSH)
|
- New: Exoscale Driver
|
||||||
- Amazon EC2
|
- New: Generic Driver (provision any host with supported base OS and SSH)
|
||||||
- SSH user is configurable
|
- Amazon EC2
|
||||||
- Support for Spot instances
|
- SSH user is configurable
|
||||||
- Add option to use private address only
|
- Support for Spot instances
|
||||||
- Base AMI updated to 20150417
|
- Add option to use private address only
|
||||||
- Google
|
- Base AMI updated to 20150417
|
||||||
- Support custom disk types
|
- Google
|
||||||
- Updated base image to v20150316
|
- Support custom disk types
|
||||||
- Openstack
|
- Updated base image to v20150316
|
||||||
- Support for Keystone v3 domains
|
- Openstack
|
||||||
- Rackspace
|
- Support for Keystone v3 domains
|
||||||
- Misc fixes including environment variable for Flavor Id and stability
|
- Rackspace
|
||||||
- Softlayer
|
- Misc fixes including environment variable for Flavor Id and stability
|
||||||
- Enable local disk as provisioning option
|
- Softlayer
|
||||||
- Fixes for SSH access errors
|
- Enable local disk as provisioning option
|
||||||
- Fixed bug where public IP would always be returned when requesting private
|
- Fixes for SSH access errors
|
||||||
- Add support for specifying public and private VLAN IDs
|
- Fixed bug where public IP would always be returned when requesting private
|
||||||
- VirtualBox
|
- Add support for specifying public and private VLAN IDs
|
||||||
- Use Intel network interface driver (adds great stability)
|
- VirtualBox
|
||||||
- Stability fixes for NAT access
|
- Use Intel network interface driver (adds great stability)
|
||||||
- Use DNS pass through
|
- Stability fixes for NAT access
|
||||||
- Default CPU to single core for improved performance
|
- Use DNS pass through
|
||||||
- Enable shared folder support for Windows hosts
|
- Default CPU to single core for improved performance
|
||||||
- VMware Fusion
|
- Enable shared folder support for Windows hosts
|
||||||
- Boot2Docker ISO updated
|
- VMware Fusion
|
||||||
- Shared folder support
|
- Boot2Docker ISO updated
|
||||||
|
- Shared folder support
|
||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
- Provisioning improvements to ensure Docker is available
|
|
||||||
- SSH improvements for provisioning stability
|
- Provisioning improvements to ensure Docker is available
|
||||||
- Fixed SSH key generation bug on Windows
|
- SSH improvements for provisioning stability
|
||||||
- Help formatting for improved readability
|
- Fixed SSH key generation bug on Windows
|
||||||
|
- Help formatting for improved readability
|
||||||
|
|
||||||
## Breaking Changes
|
## Breaking Changes
|
||||||
- "Short-Form" name reference no longer supported Instead of "docker-machine " implying the active host you must now use docker-machine
|
|
||||||
- VMware shared folders require Boot2Docker 1.7
|
|
||||||
|
|
||||||
## Special Thanks
|
- "Short-Form" name reference no longer supported Instead of "docker-machine " implying the active host you must now use docker-machine
|
||||||
|
- VMware shared folders require Boot2Docker 1.7
|
||||||
|
|
||||||
|
## Special Thanks
|
||||||
|
|
||||||
We would like to thank all contributors. Machine would not be where it is
|
We would like to thank all contributors. Machine would not be where it is
|
||||||
without you. We would also like to give special thanks to the following
|
without you. We would also like to give special thanks to the following
|
||||||
contributors for outstanding contributions to the project:
|
contributors for outstanding contributions to the project:
|
||||||
|
|
||||||
- @frapposelli for VMware updates and fixes
|
- @frapposelli for VMware updates and fixes
|
||||||
- @hairyhenderson for several improvements to Softlayer driver, inspect formatting and lots of fixes
|
- @hairyhenderson for several improvements to Softlayer driver, inspect formatting and lots of fixes
|
||||||
- @ibuildthecloud for rancher os provisioning
|
- @ibuildthecloud for rancher os provisioning
|
||||||
- @sthulb for portable SSH library
|
- @sthulb for portable SSH library
|
||||||
- @vincentbernat for exoscale
|
- @vincentbernat for exoscale
|
||||||
- @zchee for Amazon updates and great doc updates
|
- @zchee for Amazon updates and great doc updates
|
||||||
|
|
||||||
# 0.2.0 (2015-04-16)
|
# 0.2.0 (2015-04-16)
|
||||||
|
|
||||||
|
@ -152,85 +159,85 @@ Core Stability and Driver Updates
|
||||||
|
|
||||||
## Core
|
## Core
|
||||||
|
|
||||||
- Support for system proxy environment
|
- Support for system proxy environment
|
||||||
- New command to regenerate TLS certificates
|
- New command to regenerate TLS certificates
|
||||||
- Note: this will restart the Docker engine to apply
|
- Note: this will restart the Docker engine to apply
|
||||||
- Updates to driver operations (create, start, stop, etc) for better reliability
|
- Updates to driver operations (create, start, stop, etc) for better reliability
|
||||||
- New internal `libmachine` package for internal api (not ready for public usage)
|
- New internal `libmachine` package for internal api (not ready for public usage)
|
||||||
- Updated Driver Interface
|
- Updated Driver Interface
|
||||||
- [Driver Spec](https://github.com/docker/machine/blob/master/docs/DRIVER_SPEC.md)
|
- [Driver Spec](https://github.com/docker/machine/blob/master/docs/DRIVER_SPEC.md)
|
||||||
- Removed host provisioning from Drivers to enable a more consistent install
|
- Removed host provisioning from Drivers to enable a more consistent install
|
||||||
- Removed SSH commands from each Driver for more consistent operations
|
- Removed SSH commands from each Driver for more consistent operations
|
||||||
- Swarm: machine now uses Swarm default binpacking strategy
|
- Swarm: machine now uses Swarm default binpacking strategy
|
||||||
|
|
||||||
## Driver Updates
|
## Driver Updates
|
||||||
|
|
||||||
- All drivers updated to new Driver interface
|
- All drivers updated to new Driver interface
|
||||||
- Amazon EC2
|
- Amazon EC2
|
||||||
- Better checking for subnets on creation
|
- Better checking for subnets on creation
|
||||||
- Support for using Private IPs in VPC
|
- Support for using Private IPs in VPC
|
||||||
- Fixed bug with duplicate security group authorization with Swarm
|
- Fixed bug with duplicate security group authorization with Swarm
|
||||||
- Support for IAM instance profile
|
- Support for IAM instance profile
|
||||||
- Fixed bug where IP was not properly detected upon stop
|
- Fixed bug where IP was not properly detected upon stop
|
||||||
- DigitalOcean
|
- DigitalOcean
|
||||||
- IPv6 support
|
- IPv6 support
|
||||||
- Backup option
|
- Backup option
|
||||||
- Private Networking
|
- Private Networking
|
||||||
- Openstack / Rackspace
|
- Openstack / Rackspace
|
||||||
- Gophercloud updated to latest version
|
- Gophercloud updated to latest version
|
||||||
- New insecure flag to disable TLS (use with caution)
|
- New insecure flag to disable TLS (use with caution)
|
||||||
- Google
|
- Google
|
||||||
- Google source image updated
|
- Google source image updated
|
||||||
- Ability to specify auth token via file
|
- Ability to specify auth token via file
|
||||||
- VMware Fusion
|
- VMware Fusion
|
||||||
- Paravirtualized driver for disk (pvscsi)
|
- Paravirtualized driver for disk (pvscsi)
|
||||||
- Enhanced paravirtualized NIC (vmxnet3)
|
- Enhanced paravirtualized NIC (vmxnet3)
|
||||||
- Power option updates
|
- Power option updates
|
||||||
- SSH keys persistent across reboots
|
- SSH keys persistent across reboots
|
||||||
- Stop now gracefully stops VM
|
- Stop now gracefully stops VM
|
||||||
- vCPUs now match host CPUs
|
- vCPUs now match host CPUs
|
||||||
- SoftLayer
|
- SoftLayer
|
||||||
- Fixed provision bug where `curl` was not present
|
- Fixed provision bug where `curl` was not present
|
||||||
- VirtualBox
|
- VirtualBox
|
||||||
- Correct power operations with Saved VM state
|
- Correct power operations with Saved VM state
|
||||||
- Fixed bug where image option was ignored
|
- Fixed bug where image option was ignored
|
||||||
|
|
||||||
## CLI
|
## CLI
|
||||||
|
|
||||||
- Auto-regeneration of TLS certificates when TLS error is detected
|
- Auto-regeneration of TLS certificates when TLS error is detected
|
||||||
- Note: this will restart the Docker engine to apply
|
- Note: this will restart the Docker engine to apply
|
||||||
- Minor UI updates including improved sorting and updated command docs
|
- Minor UI updates including improved sorting and updated command docs
|
||||||
- Bug with `config` and `env` with spaces fixed
|
- Bug with `config` and `env` with spaces fixed
|
||||||
- Note: you now must use `eval $(docker-machine env machine)` to load environment settings
|
- Note: you now must use `eval $(docker-machine env machine)` to load environment settings
|
||||||
- Updates to better support `fish` shell
|
- Updates to better support `fish` shell
|
||||||
- Use `--tlsverify` for both `config` and `env` commands
|
- Use `--tlsverify` for both `config` and `env` commands
|
||||||
- Commands now use eval for better interoperability with shell
|
- Commands now use eval for better interoperability with shell
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
- New integration test framework (bats)
|
|
||||||
|
|
||||||
|
- New integration test framework (bats)
|
||||||
|
|
||||||
# 0.1.0 (2015-02-26)
|
# 0.1.0 (2015-02-26)
|
||||||
|
|
||||||
Initial beta release.
|
Initial beta release.
|
||||||
|
|
||||||
- Provision Docker Engines using multiple drivers
|
- Provision Docker Engines using multiple drivers
|
||||||
- Provide light management for the machines
|
- Provide light management for the machines
|
||||||
- Create, Start, Stop, Restart, Kill, Remove, SSH
|
- Create, Start, Stop, Restart, Kill, Remove, SSH
|
||||||
- Configure the Docker Engine for secure communication (TLS)
|
- Configure the Docker Engine for secure communication (TLS)
|
||||||
- Easily switch target machine for fast configuration of Docker Engine client
|
- Easily switch target machine for fast configuration of Docker Engine client
|
||||||
- Provision Swarm clusters (experimental)
|
- Provision Swarm clusters (experimental)
|
||||||
|
|
||||||
## Included drivers
|
## Included drivers
|
||||||
|
|
||||||
- Amazon EC2
|
- Amazon EC2
|
||||||
- Digital Ocean
|
- Digital Ocean
|
||||||
- Google
|
- Google
|
||||||
- Microsoft Azure
|
- Microsoft Azure
|
||||||
- Microsoft Hyper-V
|
- Microsoft Hyper-V
|
||||||
- Openstack
|
- Openstack
|
||||||
- Rackspace
|
- Rackspace
|
||||||
- VirtualBox
|
- VirtualBox
|
||||||
- VMware Fusion
|
- VMware Fusion
|
||||||
- VMware vCloud Air
|
- VMware vCloud Air
|
||||||
- VMware vSphere
|
- VMware vSphere
|
||||||
|
|
|
@ -18,9 +18,9 @@ guidelines](https://github.com/docker/docker/blob/master/CONTRIBUTING.md).
|
||||||
|
|
||||||
The requirements to build Machine are:
|
The requirements to build Machine are:
|
||||||
|
|
||||||
1. A running instance of Docker or a Golang 1.5 development environment
|
1. A running instance of Docker or a Golang 1.5 development environment
|
||||||
2. The `bash` shell
|
2. The `bash` shell
|
||||||
3. [Make](https://www.gnu.org/software/make/)
|
3. [Make](https://www.gnu.org/software/make/)
|
||||||
|
|
||||||
## Build using Docker containers
|
## Build using Docker containers
|
||||||
|
|
||||||
|
@ -33,13 +33,12 @@ To build the `docker-machine` binary using containers, simply run:
|
||||||
|
|
||||||
Make sure the source code directory is under a correct directory structure to use Go 1.5 vendoring;
|
Make sure the source code directory is under a correct directory structure to use Go 1.5 vendoring;
|
||||||
example of cloning and preparing the correct environment `GOPATH`:
|
example of cloning and preparing the correct environment `GOPATH`:
|
||||||
```
|
|
||||||
mkdir docker-machine
|
mkdir docker-machine
|
||||||
cd docker-machine
|
cd docker-machine
|
||||||
export GOPATH="$PWD"
|
export GOPATH="$PWD"
|
||||||
go get github.com/docker/machine
|
go get github.com/docker/machine
|
||||||
cd src/github.com/docker/machine
|
cd src/github.com/docker/machine
|
||||||
```
|
|
||||||
|
|
||||||
At this point, simply run:
|
At this point, simply run:
|
||||||
|
|
||||||
|
@ -56,6 +55,7 @@ You may call:
|
||||||
to clean-up build results.
|
to clean-up build results.
|
||||||
|
|
||||||
## Tests and validation
|
## Tests and validation
|
||||||
|
|
||||||
We use the usual `go` tools for this, to run those commands you need at least the linter which you can
|
We use the usual `go` tools for this, to run those commands you need at least the linter which you can
|
||||||
install with `go get -u github.com/golang/lint/golint`
|
install with `go get -u github.com/golang/lint/golint`
|
||||||
|
|
||||||
|
@ -67,7 +67,6 @@ If you want more indepth validation (vet, lint), and all tests with race detecti
|
||||||
|
|
||||||
$ make validate
|
$ make validate
|
||||||
|
|
||||||
|
|
||||||
If you make a pull request, it is highly encouraged that you submit tests for
|
If you make a pull request, it is highly encouraged that you submit tests for
|
||||||
the code that you have added or modified in the same pull request.
|
the code that you have added or modified in the same pull request.
|
||||||
|
|
||||||
|
@ -77,7 +76,7 @@ To generate an html code coverage report of the Machine codebase, run:
|
||||||
|
|
||||||
make coverage-serve
|
make coverage-serve
|
||||||
|
|
||||||
And navigate to http://localhost:8000 (hit `CTRL+C` to stop the server).
|
And navigate to <http://localhost:8000> (hit `CTRL+C` to stop the server).
|
||||||
|
|
||||||
### Native build
|
### Native build
|
||||||
|
|
||||||
|
@ -211,15 +210,13 @@ Keep in mind that Machine supports environment variables for many of these
|
||||||
flags. So, for instance, you could run the command (substituting, of course,
|
flags. So, for instance, you could run the command (substituting, of course,
|
||||||
the proper secrets):
|
the proper secrets):
|
||||||
|
|
||||||
```
|
$ DRIVER=amazonec2 \
|
||||||
$ DRIVER=amazonec2 \
|
AWS_VPC_ID=vpc-xxxxxxx \
|
||||||
AWS_VPC_ID=vpc-xxxxxxx \
|
AWS_SECRET_ACCESS_KEY=yyyyyyyyyyyyy \
|
||||||
AWS_SECRET_ACCESS_KEY=yyyyyyyyyyyyy \
|
AWS_ACCESS_KEY_ID=zzzzzzzzzzzzzzzz \
|
||||||
AWS_ACCESS_KEY_ID=zzzzzzzzzzzzzzzz \
|
AWS_AMI=ami-12663b7a \
|
||||||
AWS_AMI=ami-12663b7a \
|
AWS_SSH_USER=ec2-user \
|
||||||
AWS_SSH_USER=ec2-user \
|
make test-integration test/integration/core
|
||||||
make test-integration test/integration/core
|
|
||||||
```
|
|
||||||
|
|
||||||
in order to run the core tests on Red Hat Enterprise Linux on Amazon.
|
in order to run the core tests on Red Hat Enterprise Linux on Amazon.
|
||||||
|
|
||||||
|
@ -231,11 +228,11 @@ guide you.
|
||||||
|
|
||||||
At the time of writing, there is:
|
At the time of writing, there is:
|
||||||
|
|
||||||
1. A `core` directory which contains tests that are applicable to all drivers.
|
1. A `core` directory which contains tests that are applicable to all drivers.
|
||||||
2. A `drivers` directory which contains tests that are applicable only to
|
2. A `drivers` directory which contains tests that are applicable only to
|
||||||
specific drivers with sub-directories for each provider.
|
specific drivers with sub-directories for each provider.
|
||||||
3. A `cli` directory which is meant for testing functionality of the command
|
3. A `cli` directory which is meant for testing functionality of the command
|
||||||
line interface, without much regard for driver-specific details.
|
line interface, without much regard for driver-specific details.
|
||||||
|
|
||||||
### Guidelines
|
### Guidelines
|
||||||
|
|
||||||
|
@ -244,15 +241,15 @@ work in progress, but here are some general guidelines from the maintainers:
|
||||||
|
|
||||||
1. Ideally, each test file should have only one concern.
|
1. Ideally, each test file should have only one concern.
|
||||||
2. Tests generally should not spin up more than one machine unless the test is
|
2. Tests generally should not spin up more than one machine unless the test is
|
||||||
deliberately testing something which involves multiple machines, such as an `ls`
|
deliberately testing something which involves multiple machines, such as an `ls`
|
||||||
test which involves several machines, or a test intended to create and check
|
test which involves several machines, or a test intended to create and check
|
||||||
some property of a Swarm cluster.
|
some property of a Swarm cluster.
|
||||||
3. BATS will print the output of commands executed during a test if the test
|
3. BATS will print the output of commands executed during a test if the test
|
||||||
fails. This can be useful, for instance to dump the magic `$output` variable
|
fails. This can be useful, for instance to dump the magic `$output` variable
|
||||||
that BATS provides and/or to get debugging information.
|
that BATS provides and/or to get debugging information.
|
||||||
4. It is not strictly needed to clean up the machines as part of the test. The
|
4. It is not strictly needed to clean up the machines as part of the test. The
|
||||||
BATS wrapper script has a hook to take care of cleaning up all created machines
|
BATS wrapper script has a hook to take care of cleaning up all created machines
|
||||||
after each test.
|
after each test.
|
||||||
|
|
||||||
# Drivers
|
# Drivers
|
||||||
|
|
||||||
|
@ -260,11 +257,11 @@ Docker Machine has several included drivers that supports provisioning hosts
|
||||||
in various providers. If you wish to contribute a driver, we ask the following
|
in various providers. If you wish to contribute a driver, we ask the following
|
||||||
to ensure we keep the driver in a consistent and stable state:
|
to ensure we keep the driver in a consistent and stable state:
|
||||||
|
|
||||||
- Address issues filed against this driver in a timely manner
|
- Address issues filed against this driver in a timely manner
|
||||||
- Review PRs for the driver
|
- Review PRs for the driver
|
||||||
- Be responsible for maintaining the infrastructure to run unit tests
|
- Be responsible for maintaining the infrastructure to run unit tests
|
||||||
and integration tests on the new supported environment
|
and integration tests on the new supported environment
|
||||||
- Participate in a weekly driver maintainer meeting
|
- Participate in a weekly driver maintainer meeting
|
||||||
|
|
||||||
If you can commit to those, the next step is to make sure the driver adheres
|
If you can commit to those, the next step is to make sure the driver adheres
|
||||||
to the [spec](https://github.com/docker/machine/blob/master/docs/DRIVER_SPEC.md).
|
to the [spec](https://github.com/docker/machine/blob/master/docs/DRIVER_SPEC.md).
|
||||||
|
|
20
README.md
20
README.md
|
@ -83,16 +83,16 @@ process, `create` is often where these types of errors show up.
|
||||||
A hang could be due to a variety of factors, but the most common suspect is
|
A hang could be due to a variety of factors, but the most common suspect is
|
||||||
networking. Consider the following:
|
networking. Consider the following:
|
||||||
|
|
||||||
- Are you using a VPN? If so, try disconnecting and see if creation will
|
- Are you using a VPN? If so, try disconnecting and see if creation will
|
||||||
succeed without the VPN. Some VPN software aggressively controls routes and
|
succeed without the VPN. Some VPN software aggressively controls routes and
|
||||||
you may need to [manually add the route](https://github.com/docker/machine/issues/1500#issuecomment-121134958).
|
you may need to [manually add the route](https://github.com/docker/machine/issues/1500#issuecomment-121134958).
|
||||||
- Are you connected to a proxy server, corporate or otherwise? If so, take a
|
- Are you connected to a proxy server, corporate or otherwise? If so, take a
|
||||||
look at the `--no-proxy` flag for `env` and at [setting environment variables
|
look at the `--no-proxy` flag for `env` and at [setting environment variables
|
||||||
for the created Docker Engine](https://docs.docker.com/machine/reference/create/#specifying-configuration-options-for-the-created-docker-engine).
|
for the created Docker Engine](https://docs.docker.com/machine/reference/create/#specifying-configuration-options-for-the-created-docker-engine).
|
||||||
- Are there a lot of host-only interfaces listed by the command `VBoxManage list
|
- Are there a lot of host-only interfaces listed by the command `VBoxManage list
|
||||||
hostonlyifs`? If so, this has sometimes been known to cause bugs. Consider
|
hostonlyifs`? If so, this has sometimes been known to cause bugs. Consider
|
||||||
removing the ones you are not using (`VBoxManage hostonlyif remove name`) and
|
removing the ones you are not using (`VBoxManage hostonlyif remove name`) and
|
||||||
trying machine creation again.
|
trying machine creation again.
|
||||||
|
|
||||||
We are keenly aware of this as an issue and working towards a set of solutions
|
We are keenly aware of this as an issue and working towards a set of solutions
|
||||||
which is robust for all users, so please give us feedback and/or report issues,
|
which is robust for all users, so please give us feedback and/or report issues,
|
||||||
|
|
|
@ -14,18 +14,21 @@ For what is coming in specific releases, see our [upcoming
|
||||||
milestones](https://github.com/docker/machine/milestones).)
|
milestones](https://github.com/docker/machine/milestones).)
|
||||||
|
|
||||||
### Docker Engine / Swarm Configuration
|
### Docker Engine / Swarm Configuration
|
||||||
|
|
||||||
Currently there are only a few things that can be configured in the Docker Engine and Swarm. This will enable more operations such as Engine labels and Swarm strategies.
|
Currently there are only a few things that can be configured in the Docker Engine and Swarm. This will enable more operations such as Engine labels and Swarm strategies.
|
||||||
|
|
||||||
### Boot2Docker Migration Support
|
### Boot2Docker Migration Support
|
||||||
|
|
||||||
Currently both Machine and Boot2Docker provider similar functionality. This will enable users to migrate from boot2docker to machine.
|
Currently both Machine and Boot2Docker provider similar functionality. This will enable users to migrate from boot2docker to machine.
|
||||||
|
|
||||||
### Expand Provisioner
|
### Expand Provisioner
|
||||||
|
|
||||||
Machine currently supports running Boot2Docker for "local" providers and Ubuntu for "remote" providers. This will expand the provisioning capabilities to include other base operating systems such as Red Hat-like distributions and possibly other "just enough" operating systems.
|
Machine currently supports running Boot2Docker for "local" providers and Ubuntu for "remote" providers. This will expand the provisioning capabilities to include other base operating systems such as Red Hat-like distributions and possibly other "just enough" operating systems.
|
||||||
|
|
||||||
### Windows Experience
|
### Windows Experience
|
||||||
|
|
||||||
Currently, the Machine on Windows experience is not as good as the Mac / Linux. There is no "recommended" path to use Machine and there are several inconsistencies on Windows such as logging and output formatting.
|
Currently, the Machine on Windows experience is not as good as the Mac / Linux. There is no "recommended" path to use Machine and there are several inconsistencies on Windows such as logging and output formatting.
|
||||||
|
|
||||||
Project Planning
|
# Project Planning
|
||||||
================
|
|
||||||
|
|
||||||
An [Open-Source Planning Process](https://github.com/docker/machine/wiki/Open-Source-Planning-Process) is used to define the Roadmap. [Project Pages](https://github.com/docker/machine/wiki) define the goals for each Milestone and identify current progress.
|
An [Open-Source Planning Process](https://github.com/docker/machine/wiki/Open-Source-Planning-Process) is used to define the Roadmap. [Project Pages](https://github.com/docker/machine/wiki) define the goals for each Milestone and identify current progress.
|
||||||
|
|
|
@ -16,17 +16,17 @@ pull request adding the relevant information to the list. Submitting your
|
||||||
driver here will allow others to discover it and the core Machine team to keep
|
driver here will allow others to discover it and the core Machine team to keep
|
||||||
you informed of upstream changes.
|
you informed of upstream changes.
|
||||||
|
|
||||||
__NOTE__: The linked repositories are not maintained by or formally associated
|
**NOTE**: The linked repositories are not maintained by or formally associated
|
||||||
with Docker Inc. Use 3rd party plugins at your own risk.
|
with Docker Inc. Use 3rd party plugins at your own risk.
|
||||||
|
|
||||||
| Name | Repository | Maintainer GitHub Handle | Maintainer Email |
|
| Name | Repository | Maintainer GitHub Handle | Maintainer Email |
|
||||||
| ---- | ---------- | ------------------------- | ---------------- |
|
| ---------------------- | -------------------------------------------------------------- | --------------------------------------------------- | ------------------------- |
|
||||||
| Amazon Cloud Formation | https://github.com/jeffellin/machine-cloudformation |[Jeff Ellin](https://github.com/jeffellin) | acf@ellin.com |
|
| Amazon Cloud Formation | <https://github.com/jeffellin/machine-cloudformation> | [Jeff Ellin](https://github.com/jeffellin) | acf@ellin.com |
|
||||||
| BrightBox | https://github.com/brightbox/docker-machine-driver-brightbox | [NeilW](https://github.com/NeilW) | neil@aldur.co.uk |
|
| BrightBox | <https://github.com/brightbox/docker-machine-driver-brightbox> | [NeilW](https://github.com/NeilW) | neil@aldur.co.uk |
|
||||||
| Docker-In-Docker | https://github.com/nathanleclaire/docker-machine-driver-dind | [nathanleclaire](https://github.com/nathanleclaire) | nathan.leclaire@gmail.com |
|
| Docker-In-Docker | <https://github.com/nathanleclaire/docker-machine-driver-dind> | [nathanleclaire](https://github.com/nathanleclaire) | nathan.leclaire@gmail.com |
|
||||||
| HPE OneView | https://github.com/HewlettPackard/docker-machine-oneview | [wenlock](https://github.com/wenlock) | wenlock@hpe.com |
|
| HPE OneView | <https://github.com/HewlettPackard/docker-machine-oneview> | [wenlock](https://github.com/wenlock) | wenlock@hpe.com |
|
||||||
| Packet | https://github.com/packethost/docker-machine-driver-packet | [betawaffle](https://github.com/betawaffle) | andy@packet.net |
|
| Packet | <https://github.com/packethost/docker-machine-driver-packet> | [betawaffle](https://github.com/betawaffle) | andy@packet.net |
|
||||||
| Parallels for OSX | https://github.com/Parallels/docker-machine-parallels | [legal90](https://github.com/legal90) | legal90@gmail.com |
|
| Parallels for OSX | <https://github.com/Parallels/docker-machine-parallels> | [legal90](https://github.com/legal90) | legal90@gmail.com |
|
||||||
| SAKURA CLOUD | https://github.com/yamamoto-febc/docker-machine-sakuracloud | [yamamoto-febc](https://github.com/yamamoto-febc) | yamamoto.febc@gmail.com |
|
| SAKURA CLOUD | <https://github.com/yamamoto-febc/docker-machine-sakuracloud> | [yamamoto-febc](https://github.com/yamamoto-febc) | yamamoto.febc@gmail.com |
|
||||||
| VULTR | https://github.com/janeczku/docker-machine-vultr | [janeczku](https://github.com/janeczku) | jb@festplatte.eu.org |
|
| VULTR | <https://github.com/janeczku/docker-machine-vultr> | [janeczku](https://github.com/janeczku) | jb@festplatte.eu.org |
|
||||||
| xhyve | https://github.com/zchee/docker-machine-xhyve | [zchee](https://github.com/zchee) | zchee.io@gmail.com |
|
| xhyve | <https://github.com/zchee/docker-machine-xhyve> | [zchee](https://github.com/zchee) | zchee.io@gmail.com |
|
||||||
|
|
|
@ -10,79 +10,95 @@ parent="mn_install"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# Machine Driver Specification v1
|
# Machine Driver Specification v1
|
||||||
|
|
||||||
This is the standard configuration and specification for version 1 drivers.
|
This is the standard configuration and specification for version 1 drivers.
|
||||||
|
|
||||||
Along with defining how a driver should provision instances, the standard
|
Along with defining how a driver should provision instances, the standard
|
||||||
also discusses behavior and operations Machine expects.
|
also discusses behavior and operations Machine expects.
|
||||||
|
|
||||||
# Requirements
|
# Requirements
|
||||||
|
|
||||||
The following are required for a driver to be included as a supported driver
|
The following are required for a driver to be included as a supported driver
|
||||||
for Docker Machine.
|
for Docker Machine.
|
||||||
|
|
||||||
## Base Operating System
|
## Base Operating System
|
||||||
|
|
||||||
The provider must offer a base operating system supported by the Docker Engine.
|
The provider must offer a base operating system supported by the Docker Engine.
|
||||||
|
|
||||||
Currently Machine requires Ubuntu for non-Boot2Docker machines. This will
|
Currently Machine requires Ubuntu for non-Boot2Docker machines. This will
|
||||||
change in the future.
|
change in the future.
|
||||||
|
|
||||||
## API Access
|
## API Access
|
||||||
|
|
||||||
We prefer accessing the provider service via HTTP APIs and strongly recommend
|
We prefer accessing the provider service via HTTP APIs and strongly recommend
|
||||||
using those over external executables. For example, using the Amazon EC2 API
|
using those over external executables. For example, using the Amazon EC2 API
|
||||||
instead of the EC2 command line tools. If in doubt, contact a project
|
instead of the EC2 command line tools. If in doubt, contact a project
|
||||||
maintainer.
|
maintainer.
|
||||||
|
|
||||||
## SSH
|
## SSH
|
||||||
|
|
||||||
The provider must offer SSH access to control the instance. This does not
|
The provider must offer SSH access to control the instance. This does not
|
||||||
have to be public, but must offer it as Machine relies on SSH for system
|
have to be public, but must offer it as Machine relies on SSH for system
|
||||||
level maintenance.
|
level maintenance.
|
||||||
|
|
||||||
# Provider Operations
|
# Provider Operations
|
||||||
|
|
||||||
The following instance operations should be supported by the provider.
|
The following instance operations should be supported by the provider.
|
||||||
|
|
||||||
## Create
|
## Create
|
||||||
|
|
||||||
`Create` will launch a new instance and make sure it is ready for provisioning.
|
`Create` will launch a new instance and make sure it is ready for provisioning.
|
||||||
This includes setting up the instance with the proper SSH keys and making
|
This includes setting up the instance with the proper SSH keys and making
|
||||||
sure SSH is available including any access control (firewall). This should
|
sure SSH is available including any access control (firewall). This should
|
||||||
return an error on failure.
|
return an error on failure.
|
||||||
|
|
||||||
## Remove
|
## Remove
|
||||||
|
|
||||||
`Remove` will remove the instance from the provider. This should remove the
|
`Remove` will remove the instance from the provider. This should remove the
|
||||||
instance and any associated services or artifacts that were created as part
|
instance and any associated services or artifacts that were created as part
|
||||||
of the instance including keys and access groups. This should return an
|
of the instance including keys and access groups. This should return an
|
||||||
error on failure.
|
error on failure.
|
||||||
|
|
||||||
## Start
|
## Start
|
||||||
|
|
||||||
`Start` will start a stopped instance. This should ensure the instance is
|
`Start` will start a stopped instance. This should ensure the instance is
|
||||||
ready for operations such as SSH and Docker. This should return an error on
|
ready for operations such as SSH and Docker. This should return an error on
|
||||||
failure.
|
failure.
|
||||||
|
|
||||||
## Stop
|
## Stop
|
||||||
|
|
||||||
`Stop` will stop a running instance. This should ensure the instance is
|
`Stop` will stop a running instance. This should ensure the instance is
|
||||||
stopped and return an error on failure.
|
stopped and return an error on failure.
|
||||||
|
|
||||||
## Kill
|
## Kill
|
||||||
|
|
||||||
`Kill` will forcibly stop a running instance. This should ensure the instance
|
`Kill` will forcibly stop a running instance. This should ensure the instance
|
||||||
is stopped and return an error on failure.
|
is stopped and return an error on failure.
|
||||||
|
|
||||||
## Restart
|
## Restart
|
||||||
|
|
||||||
`Restart` will restart a running instance. This should ensure the instance
|
`Restart` will restart a running instance. This should ensure the instance
|
||||||
is ready for operations such as SSH and Docker. This should return an error
|
is ready for operations such as SSH and Docker. This should return an error
|
||||||
on failure.
|
on failure.
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
`Status` will return the state of the instance. This should return the
|
`Status` will return the state of the instance. This should return the
|
||||||
current state of the instance (running, stopped, error, etc). This should
|
current state of the instance (running, stopped, error, etc). This should
|
||||||
return an error on failure.
|
return an error on failure.
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
|
|
||||||
Testing is strongly recommended for drivers. Unit tests are preferred as well
|
Testing is strongly recommended for drivers. Unit tests are preferred as well
|
||||||
as inclusion into the [integration tests](https://github.com/docker/machine#integration-tests).
|
as inclusion into the [integration tests](https://github.com/docker/machine#integration-tests).
|
||||||
|
|
||||||
# Maintaining
|
# Maintaining
|
||||||
|
|
||||||
Driver plugin maintainers are encouraged to host their own repo and distribute
|
Driver plugin maintainers are encouraged to host their own repo and distribute
|
||||||
the driver plugins as executables.
|
the driver plugins as executables.
|
||||||
|
|
||||||
# Implementation
|
# Implementation
|
||||||
|
|
||||||
The following describes what is needed to create a Machine Driver. The driver
|
The following describes what is needed to create a Machine Driver. The driver
|
||||||
interface has methods that must be implemented for all drivers. These include
|
interface has methods that must be implemented for all drivers. These include
|
||||||
operations such as `Create`, `Remove`, `Start`, `Stop` etc.
|
operations such as `Create`, `Remove`, `Start`, `Stop` etc.
|
||||||
|
@ -91,47 +107,43 @@ For details see the [Driver Interface](https://github.com/docker/machine/blob/ma
|
||||||
|
|
||||||
To provide this functionality, you should embed the `drivers.BaseDriver` struct, similar to the following:
|
To provide this functionality, you should embed the `drivers.BaseDriver` struct, similar to the following:
|
||||||
|
|
||||||
```
|
type Driver struct {
|
||||||
type Driver struct {
|
*drivers.BaseDriver
|
||||||
*drivers.BaseDriver
|
DriverSpecificField string
|
||||||
DriverSpecificField string
|
}
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Each driver must then use an `init` func to "register" the driver:
|
Each driver must then use an `init` func to "register" the driver:
|
||||||
|
|
||||||
```
|
func init() {
|
||||||
func init() {
|
drivers.Register("drivername", &drivers.RegisteredDriver{
|
||||||
drivers.Register("drivername", &drivers.RegisteredDriver{
|
New: NewDriver,
|
||||||
New: NewDriver,
|
GetCreateFlags: GetCreateFlags,
|
||||||
GetCreateFlags: GetCreateFlags,
|
})
|
||||||
})
|
}
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Flags
|
## Flags
|
||||||
|
|
||||||
Driver flags are used for provider specific customizations. To add flags, use
|
Driver flags are used for provider specific customizations. To add flags, use
|
||||||
a `GetCreateFlags` func. For example:
|
a `GetCreateFlags` func. For example:
|
||||||
|
|
||||||
```
|
func GetCreateFlags() []cli.Flag {
|
||||||
func GetCreateFlags() []cli.Flag {
|
return []cli.Flag{
|
||||||
return []cli.Flag{
|
cli.StringFlag{
|
||||||
cli.StringFlag{
|
EnvVar: "DRIVERNAME_TOKEN",
|
||||||
EnvVar: "DRIVERNAME_TOKEN",
|
Name: "drivername-token",
|
||||||
Name: "drivername-token",
|
Usage: "Provider access token",
|
||||||
Usage: "Provider access token",
|
|
||||||
|
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
EnvVar: "DRIVERNAME_IMAGE",
|
EnvVar: "DRIVERNAME_IMAGE",
|
||||||
Name: "drivername-image",
|
Name: "drivername-image",
|
||||||
Usage: "Provider Image",
|
Usage: "Provider Image",
|
||||||
Value: "ubuntu-14-04-x64",
|
Value: "ubuntu-14-04-x64",
|
||||||
},
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
You can reference the existing [Drivers](https://github.com/docker/machine/tree/master/drivers)
|
You can reference the existing [Drivers](https://github.com/docker/machine/tree/master/drivers)
|
||||||
as well.
|
as well.
|
||||||
|
|
|
@ -17,17 +17,17 @@ If you want to add a new file or change the location of the document in the menu
|
||||||
|
|
||||||
## Documentation contributing workflow
|
## Documentation contributing workflow
|
||||||
|
|
||||||
1. Edit a Markdown file in the tree.
|
1. Edit a Markdown file in the tree.
|
||||||
|
|
||||||
2. Save your changes.
|
2. Save your changes.
|
||||||
|
|
||||||
3. Make sure all your changes maintain an 80 character line wrap.
|
3. Make sure all your changes maintain an 80 character line wrap.
|
||||||
|
|
||||||
All check lines you've written. Don't wrap content you didn't change material.
|
All check lines you've written. Don't wrap content you didn't change material.
|
||||||
|
|
||||||
3. Make sure you are in the `docs` subdirectory.
|
4. Make sure you are in the `docs` subdirectory.
|
||||||
|
|
||||||
4. Build the documentation.
|
5. Build the documentation.
|
||||||
|
|
||||||
$ make docs
|
$ make docs
|
||||||
---> ffcf3f6c4e97
|
---> ffcf3f6c4e97
|
||||||
|
@ -46,7 +46,7 @@ If you want to add a new file or change the location of the document in the menu
|
||||||
Web Server is available at http://0.0.0.0:8000/
|
Web Server is available at http://0.0.0.0:8000/
|
||||||
Press Ctrl+C to stop
|
Press Ctrl+C to stop
|
||||||
|
|
||||||
5. Open the available server in your browser.
|
6. Open the available server in your browser.
|
||||||
|
|
||||||
The documentation server has the complete menu but only the Docker machine
|
The documentation server has the complete menu but only the Docker machine
|
||||||
documentation resolves. You can't access the other project docs from this
|
documentation resolves. You can't access the other project docs from this
|
||||||
|
@ -78,11 +78,10 @@ The metadata alone has this structure:
|
||||||
weight=2
|
weight=2
|
||||||
+++
|
+++
|
||||||
|
|
||||||
The `[menu.main]` section refers to navigation defined [in the main Docker menu](https://github.com/docker/docs-base/blob/hugo/config.toml). This metadata says *add a menu item called* Extending services in machine *to the menu with the* `smn_workdw_machine` *identifier*. If you locate the menu in the configuration, you'll find *Create multi-container applications* is the menu title.
|
The `[menu.main]` section refers to navigation defined [in the main Docker menu](https://github.com/docker/docs-base/blob/hugo/config.toml). This metadata says _add a menu item called_ Extending services in machine _to the menu with the_ `smn_workdw_machine` _identifier_. If you locate the menu in the configuration, you'll find _Create multi-container applications_ is the menu title.
|
||||||
|
|
||||||
You can move an article in the tree by specifying a new parent. You can shift the location of the item by changing its weight. Higher numbers are heavier and shift the item to the bottom of menu. Low or no numbers shift it up.
|
You can move an article in the tree by specifying a new parent. You can shift the location of the item by changing its weight. Higher numbers are heavier and shift the item to the bottom of menu. Low or no numbers shift it up.
|
||||||
|
|
||||||
|
|
||||||
## Other key documentation repositories
|
## Other key documentation repositories
|
||||||
|
|
||||||
The `docker/docs-base` repository contains [the Hugo theme and menu configuration](https://github.com/docker/docs-base). If you open the `Dockerfile` you'll see the `make docs` relies on this as a base image for building the machine documentation.
|
The `docker/docs-base` repository contains [the Hugo theme and menu configuration](https://github.com/docker/docs-base). If you open the `Dockerfile` you'll see the `make docs` relies on this as a base image for building the machine documentation.
|
||||||
|
|
122
docs/RELEASE.md
122
docs/RELEASE.md
|
@ -13,69 +13,69 @@ to cover the current Docker Machine release process. It is written for Docker
|
||||||
Machine core maintainers who might find themselves performing a release.
|
Machine core maintainers who might find themselves performing a release.
|
||||||
|
|
||||||
1. **Version Bump** -- When all commits for the release have been merged into
|
1. **Version Bump** -- When all commits for the release have been merged into
|
||||||
master and/or the release branch, submit a pull request bumping the `Version`
|
master and/or the release branch, submit a pull request bumping the `Version`
|
||||||
variable in `version/version.go` to the release version. Merge said pull
|
variable in `version/version.go` to the release version. Merge said pull
|
||||||
request.
|
request.
|
||||||
2. **Compile Binaries** -- Pull down the latest changes to master and
|
2. **Compile Binaries** -- Pull down the latest changes to master and
|
||||||
cross-compile the core binary and plugin binaries for each supported OS /
|
cross-compile the core binary and plugin binaries for each supported OS /
|
||||||
architecture combination. As you may notice, this can potentially take a _very_
|
architecture combination. As you may notice, this can potentially take a _very_
|
||||||
long time so you may want to use a script like [this one for cross-compiling
|
long time so you may want to use a script like [this one for cross-compiling
|
||||||
them on DigitalOcean in
|
them on DigitalOcean in
|
||||||
parallel](https://gist.github.com/nathanleclaire/7f62fc5aa3df19a50f4e).
|
parallel](https://gist.github.com/nathanleclaire/7f62fc5aa3df19a50f4e).
|
||||||
3. **Archive Binaries** -- The binaries are distributed in `.zip` files so you
|
3. **Archive Binaries** -- The binaries are distributed in `.zip` files so you
|
||||||
need to run the `make release-pack` target to generate the distributed
|
need to run the `make release-pack` target to generate the distributed
|
||||||
artifacts.
|
artifacts.
|
||||||
4. **Upload Archives** -- Use a script or sequence of commands such as [this
|
4. **Upload Archives** -- Use a script or sequence of commands such as [this
|
||||||
one](https://gist.github.com/nathanleclaire/a9bc1f8d60070aeda361) to create a
|
one](https://gist.github.com/nathanleclaire/a9bc1f8d60070aeda361) to create a
|
||||||
git tag for the released version, a GitHub release for the released version, and
|
git tag for the released version, a GitHub release for the released version, and
|
||||||
to upload the released binaries. At the time of writing the `release` target in
|
to upload the released binaries. At the time of writing the `release` target in
|
||||||
the `Makefile` does not work correctly for this step but it should eventually be
|
the `Makefile` does not work correctly for this step but it should eventually be
|
||||||
split into a separate target and fixed.
|
split into a separate target and fixed.
|
||||||
5. **Generate Checksums** -- [This
|
5. **Generate Checksums** -- [This
|
||||||
script](https://gist.github.com/nathanleclaire/c506ad3736d33bd42c2f) will spit
|
script](https://gist.github.com/nathanleclaire/c506ad3736d33bd42c2f) will spit
|
||||||
out the checksums for the `.zip` files, which you should copy and paste into the
|
out the checksums for the `.zip` files, which you should copy and paste into the
|
||||||
end of the release notes for anyone who wants to verify the checksums of the
|
end of the release notes for anyone who wants to verify the checksums of the
|
||||||
downloaded artifacts.
|
downloaded artifacts.
|
||||||
6. **Add Installation Instructions** -- At the top of the release notes, copy and
|
6. **Add Installation Instructions** -- At the top of the release notes, copy and
|
||||||
paste the installation instructions from the previous release, taking care to
|
paste the installation instructions from the previous release, taking care to
|
||||||
update the referenced download URLs to the new version.
|
update the referenced download URLs to the new version.
|
||||||
7. **Add Release Notes** -- If release notes are already prepared, copy and
|
7. **Add Release Notes** -- If release notes are already prepared, copy and
|
||||||
paste them into the release notes section after the installation instructions.
|
paste them into the release notes section after the installation instructions.
|
||||||
If they are not, you can look through the commits since the previous release
|
If they are not, you can look through the commits since the previous release
|
||||||
using `git log` and summarize the changes in Markdown, preferably by category.
|
using `git log` and summarize the changes in Markdown, preferably by category.
|
||||||
8. **Update the CHANGELOG.md** -- Add the same notes from the previous step to the
|
8. **Update the CHANGELOG.md** -- Add the same notes from the previous step to the
|
||||||
`CHANGELOG.md` file in the repository.
|
`CHANGELOG.md` file in the repository.
|
||||||
9. **Generate and Add Contributor List** -- It is important to thank our
|
9. **Generate and Add Contributor List** -- It is important to thank our
|
||||||
contributors for their good work and persistence. Usually I generate a list of
|
contributors for their good work and persistence. Usually I generate a list of
|
||||||
authors involved in the release as a Markdown ordered list using a series of
|
authors involved in the release as a Markdown ordered list using a series of
|
||||||
UNIX commands originating from `git` author information, and paste it into the
|
UNIX commands originating from `git` author information, and paste it into the
|
||||||
release notes.. For instance, to print out the list of all unique authors since
|
release notes.. For instance, to print out the list of all unique authors since
|
||||||
the v0.5.0 release:
|
the v0.5.0 release:
|
||||||
|
|
||||||
$ git log v0.5.0.. --format="%aN" --reverse | sort | uniq | awk '{printf "- %s\n", $0 }'
|
$ git log v0.5.0.. --format="%aN" --reverse | sort | uniq | awk '{printf "- %s\n", $0 }'
|
||||||
- Amir Mohammad
|
- Amir Mohammad
|
||||||
- Anthony Dahanne
|
- Anthony Dahanne
|
||||||
- David Gageot
|
- David Gageot
|
||||||
- Jan Broer
|
- Jan Broer
|
||||||
- Jean-Laurent de Morlhon
|
- Jean-Laurent de Morlhon
|
||||||
- Kazumichi Yamamoto
|
- Kazumichi Yamamoto
|
||||||
- Kunal Kushwaha
|
- Kunal Kushwaha
|
||||||
- Mikhail Zholobov
|
- Mikhail Zholobov
|
||||||
- Nate McMaster
|
- Nate McMaster
|
||||||
- Nathan LeClaire
|
- Nathan LeClaire
|
||||||
- Olivier Gambier
|
- Olivier Gambier
|
||||||
- Soshi Katsuta
|
- Soshi Katsuta
|
||||||
- aperepel
|
- aperepel
|
||||||
- jviide
|
- jviide
|
||||||
- root
|
- root
|
||||||
|
|
||||||
10. **Update the Documentation** -- Ensure that the `docs` branch on GitHub (which
|
10. **Update the Documentation** -- Ensure that the `docs` branch on GitHub (which
|
||||||
the Docker docs team uses to deploy from) is up to date with the changes to be
|
the Docker docs team uses to deploy from) is up to date with the changes to be
|
||||||
deployed from the release branch / master.
|
deployed from the release branch / master.
|
||||||
11. **Verify the Installation** -- Copy and paste the suggested commands in the
|
11. **Verify the Installation** -- Copy and paste the suggested commands in the
|
||||||
installation notes to ensure that they work properly. Best of all, grab an
|
installation notes to ensure that they work properly. Best of all, grab an
|
||||||
(uninvolved) buddy and have them try it. `docker-machine -v` should give them
|
(uninvolved) buddy and have them try it. `docker-machine -v` should give them
|
||||||
the released version once they have run the install commands.
|
the released version once they have run the install commands.
|
||||||
12. (Optional) **Drink a Glass of Wine** -- You've worked hard on this release.
|
12. (Optional) **Drink a Glass of Wine** -- You've worked hard on this release.
|
||||||
You deserve it. For wine suggestions, please consult your friendly neighborhood
|
You deserve it. For wine suggestions, please consult your friendly neighborhood
|
||||||
sommelier.
|
sommelier.
|
||||||
|
|
|
@ -9,54 +9,52 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# Amazon Web Services
|
# Amazon Web Services
|
||||||
|
|
||||||
Create machines on [Amazon Web Services](http://aws.amazon.com). To create machines on [Amazon Web Services](http://aws.amazon.com), you must supply three required parameters:
|
Create machines on [Amazon Web Services](http://aws.amazon.com). To create machines on [Amazon Web Services](http://aws.amazon.com), you must supply three required parameters:
|
||||||
|
|
||||||
- Access Key ID
|
- Access Key ID
|
||||||
- Secret Access Key
|
- Secret Access Key
|
||||||
- VPC ID
|
- VPC ID
|
||||||
|
|
||||||
Obtain your IDs and Keys from AWS. To find the VPC ID:
|
Obtain your IDs and Keys from AWS. To find the VPC ID:
|
||||||
|
|
||||||
1. Login to the AWS console
|
1. Login to the AWS console
|
||||||
2. Go to **Services -> VPC -> Your VPCs**.
|
2. Go to **Services -> VPC -> Your VPCs**.
|
||||||
3. Locate the VPC ID you want from the *VPC* column.
|
3. Locate the VPC ID you want from the _VPC_ column.
|
||||||
4. Go to **Services -> VPC -> Subnets**. Examine the *Availability Zone* column to verify that zone `a` exists and matches your VPC ID.
|
4. Go to **Services -> VPC -> Subnets**. Examine the _Availability Zone_ column to verify that zone `a` exists and matches your VPC ID.
|
||||||
|
|
||||||
For example, `us-east1-a` is in the `a` availability zone. If the `a` zone is not present, you can create a new subnet in that zone or specify a different zone when you create the machine.
|
For example, `us-east1-a` is in the `a` availability zone. If the `a` zone is not present, you can create a new subnet in that zone or specify a different zone when you create the machine.
|
||||||
|
|
||||||
To create the machine instance, specify `--driver amazonec2` and the three required parameters.
|
To create the machine instance, specify `--driver amazonec2` and the three required parameters.
|
||||||
|
|
||||||
```
|
$ docker-machine create --driver amazonec2 --amazonec2-access-key AKI******* --amazonec2-secret-key 8T93C********* --amazonec2-vpc-id vpc-****** aws01
|
||||||
$ docker-machine create --driver amazonec2 --amazonec2-access-key AKI******* --amazonec2-secret-key 8T93C********* --amazonec2-vpc-id vpc-****** aws01
|
|
||||||
```
|
|
||||||
|
|
||||||
This example assumes the VPC ID was found in the `a` availability zone. Use the` --amazonec2-zone` flag to specify a zone other than the `a` zone. For example, `--amazonec2-zone c` signifies `us-east1-c`.
|
|
||||||
|
|
||||||
|
This example assumes the VPC ID was found in the `a` availability zone. Use the`--amazonec2-zone` flag to specify a zone other than the `a` zone. For example, `--amazonec2-zone c` signifies `us-east1-c`.
|
||||||
|
|
||||||
### Options
|
### Options
|
||||||
|
|
||||||
- `--amazonec2-access-key`: **required** Your access key id for the Amazon Web Services API.
|
- `--amazonec2-access-key`: **required** Your access key id for the Amazon Web Services API.
|
||||||
- `--amazonec2-secret-key`: **required** Your secret access key for the Amazon Web Services API.
|
- `--amazonec2-secret-key`: **required** Your secret access key for the Amazon Web Services API.
|
||||||
- `--amazonec2-session-token`: Your session token for the Amazon Web Services API.
|
- `--amazonec2-session-token`: Your session token for the Amazon Web Services API.
|
||||||
- `--amazonec2-ami`: The AMI ID of the instance to use.
|
- `--amazonec2-ami`: The AMI ID of the instance to use.
|
||||||
- `--amazonec2-region`: The region to use when launching the instance.
|
- `--amazonec2-region`: The region to use when launching the instance.
|
||||||
- `--amazonec2-vpc-id`: **required** Your VPC ID to launch the instance in.
|
- `--amazonec2-vpc-id`: **required** Your VPC ID to launch the instance in.
|
||||||
- `--amazonec2-zone`: The AWS zone to launch the instance in (i.e. one of a,b,c,d,e).
|
- `--amazonec2-zone`: The AWS zone to launch the instance in (i.e. one of a,b,c,d,e).
|
||||||
- `--amazonec2-subnet-id`: AWS VPC subnet id.
|
- `--amazonec2-subnet-id`: AWS VPC subnet id.
|
||||||
- `--amazonec2-security-group`: AWS VPC security group name.
|
- `--amazonec2-security-group`: AWS VPC security group name.
|
||||||
- `--amazonec2-instance-type`: The instance type to run.
|
- `--amazonec2-instance-type`: The instance type to run.
|
||||||
- `--amazonec2-root-size`: The root disk size of the instance (in GB).
|
- `--amazonec2-root-size`: The root disk size of the instance (in GB).
|
||||||
- `--amazonec2-iam-instance-profile`: The AWS IAM role name to be used as the instance profile.
|
- `--amazonec2-iam-instance-profile`: The AWS IAM role name to be used as the instance profile.
|
||||||
- `--amazonec2-ssh-user`: SSH Login user name.
|
- `--amazonec2-ssh-user`: SSH Login user name.
|
||||||
- `--amazonec2-request-spot-instance`: Use spot instances.
|
- `--amazonec2-request-spot-instance`: Use spot instances.
|
||||||
- `--amazonec2-spot-price`: Spot instance bid price (in dollars). Require the `--amazonec2-request-spot-instance` flag.
|
- `--amazonec2-spot-price`: Spot instance bid price (in dollars). Require the `--amazonec2-request-spot-instance` flag.
|
||||||
- `--amazonec2-private-address-only`: Use the private IP address only.
|
- `--amazonec2-private-address-only`: Use the private IP address only.
|
||||||
- `--amazonec2-monitoring`: Enable CloudWatch Monitoring.
|
- `--amazonec2-monitoring`: Enable CloudWatch Monitoring.
|
||||||
|
|
||||||
By default, the Amazon EC2 driver will use a daily image of Ubuntu 14.04 LTS.
|
By default, the Amazon EC2 driver will use a daily image of Ubuntu 14.04 LTS.
|
||||||
|
|
||||||
| Region | AMI ID |
|
| Region | AMI ID |
|
||||||
|----------------|--------------|
|
| -------------- | ------------ |
|
||||||
| ap-northeast-1 | ami-f4b06cf4 |
|
| ap-northeast-1 | ami-f4b06cf4 |
|
||||||
| ap-southeast-1 | ami-b899a2ea |
|
| ap-southeast-1 | ami-b899a2ea |
|
||||||
| ap-southeast-2 | ami-b59ce48f |
|
| ap-southeast-2 | ami-b59ce48f |
|
||||||
|
@ -72,7 +70,7 @@ By default, the Amazon EC2 driver will use a daily image of Ubuntu 14.04 LTS.
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|-------------------------------------|-------------------------|------------------|
|
| ----------------------------------- | ----------------------- | ---------------- |
|
||||||
| **`--amazonec2-access-key`** | `AWS_ACCESS_KEY_ID` | - |
|
| **`--amazonec2-access-key`** | `AWS_ACCESS_KEY_ID` | - |
|
||||||
| **`--amazonec2-secret-key`** | `AWS_SECRET_ACCESS_KEY` | - |
|
| **`--amazonec2-secret-key`** | `AWS_SECRET_ACCESS_KEY` | - |
|
||||||
| `--amazonec2-session-token` | `AWS_SESSION_TOKEN` | - |
|
| `--amazonec2-session-token` | `AWS_SESSION_TOKEN` | - |
|
||||||
|
|
|
@ -9,6 +9,7 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# Microsoft Azure
|
# Microsoft Azure
|
||||||
|
|
||||||
Create machines on [Microsoft Azure](http://azure.microsoft.com/).
|
Create machines on [Microsoft Azure](http://azure.microsoft.com/).
|
||||||
|
|
||||||
You need to create a subscription with a cert. Run these commands and answer the questions:
|
You need to create a subscription with a cert. Run these commands and answer the questions:
|
||||||
|
@ -32,28 +33,28 @@ You may need to `machine ssh` in to the virtual machine and reboot to ensure tha
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--azure-docker-port`: Port for Docker daemon.
|
- `--azure-docker-port`: Port for Docker daemon.
|
||||||
- `--azure-image`: Azure image name. See [How to: Get the Windows Azure Image Name](https://msdn.microsoft.com/en-us/library/dn135249%28v=nav.70%29.aspx)
|
- `--azure-image`: Azure image name. See [How to: Get the Windows Azure Image Name](https://msdn.microsoft.com/en-us/library/dn135249%28v=nav.70%29.aspx)
|
||||||
- `--azure-location`: Machine instance location.
|
- `--azure-location`: Machine instance location.
|
||||||
- `--azure-password`: Your Azure password.
|
- `--azure-password`: Your Azure password.
|
||||||
- `--azure-publish-settings-file`: Azure setting file. See [How to: Download and Import Publish Settings and Subscription Information](https://msdn.microsoft.com/en-us/library/dn385850%28v=nav.70%29.aspx)
|
- `--azure-publish-settings-file`: Azure setting file. See [How to: Download and Import Publish Settings and Subscription Information](https://msdn.microsoft.com/en-us/library/dn385850%28v=nav.70%29.aspx)
|
||||||
- `--azure-size`: Azure disk size.
|
- `--azure-size`: Azure disk size.
|
||||||
- `--azure-ssh-port`: Azure SSH port.
|
- `--azure-ssh-port`: Azure SSH port.
|
||||||
- `--azure-subscription-id`: **required** Your Azure subscription ID (A GUID like `d255d8d7-5af0-4f5c-8a3e-1545044b861e`).
|
- `--azure-subscription-id`: **required** Your Azure subscription ID (A GUID like `d255d8d7-5af0-4f5c-8a3e-1545044b861e`).
|
||||||
- `--azure-subscription-cert`: **required** Your Azure subscription cert.
|
- `--azure-subscription-cert`: **required** Your Azure subscription cert.
|
||||||
- `--azure-username`: Azure login user name.
|
- `--azure-username`: Azure login user name.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|---------------------------------|-------------------------------| ----------------------|
|
| ------------------------------- | ----------------------------- | ---------------------- |
|
||||||
| `--azure-docker-port` | - | `2376` |
|
| `--azure-docker-port` | - | `2376` |
|
||||||
| `--azure-image` | `AZURE_IMAGE` | *Ubuntu 14.04 LTS x64*|
|
| `--azure-image` | `AZURE_IMAGE` | _Ubuntu 14.04 LTS x64_ |
|
||||||
| `--azure-location` | `AZURE_LOCATION` | `West US` |
|
| `--azure-location` | `AZURE_LOCATION` | `West US` |
|
||||||
| `--azure-password` | - | - |
|
| `--azure-password` | - | - |
|
||||||
| `--azure-publish-settings-file` | `AZURE_PUBLISH_SETTINGS_FILE` | - |
|
| `--azure-publish-settings-file` | `AZURE_PUBLISH_SETTINGS_FILE` | - |
|
||||||
| `--azure-size` | `AZURE_SIZE` | `Small` |
|
| `--azure-size` | `AZURE_SIZE` | `Small` |
|
||||||
| `--azure-ssh-port` | - | `22` |
|
| `--azure-ssh-port` | - | `22` |
|
||||||
| **`--azure-subscription-cert`** | `AZURE_SUBSCRIPTION_CERT` | - |
|
| **`--azure-subscription-cert`** | `AZURE_SUBSCRIPTION_CERT` | - |
|
||||||
| **`--azure-subscription-id`** | `AZURE_SUBSCRIPTION_ID` | - |
|
| **`--azure-subscription-id`** | `AZURE_SUBSCRIPTION_ID` | - |
|
||||||
| `--azure-username` | - | `ubuntu` |
|
| `--azure-username` | - | `ubuntu` |
|
||||||
|
|
|
@ -9,6 +9,7 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# Digital Ocean
|
# Digital Ocean
|
||||||
|
|
||||||
Create Docker machines on [Digital Ocean](https://www.digitalocean.com/).
|
Create Docker machines on [Digital Ocean](https://www.digitalocean.com/).
|
||||||
|
|
||||||
You need to create a personal access token under "Apps & API" in the Digital Ocean
|
You need to create a personal access token under "Apps & API" in the Digital Ocean
|
||||||
|
@ -18,20 +19,20 @@ Control Panel and pass that to `docker-machine create` with the `--digitalocean-
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--digitalocean-access-token`: **required** Your personal access token for the Digital Ocean API.
|
- `--digitalocean-access-token`: **required** Your personal access token for the Digital Ocean API.
|
||||||
- `--digitalocean-image`: The name of the Digital Ocean image to use.
|
- `--digitalocean-image`: The name of the Digital Ocean image to use.
|
||||||
- `--digitalocean-region`: The region to create the droplet in, see [Regions API](https://developers.digitalocean.com/documentation/v2/#regions) for how to get a list.
|
- `--digitalocean-region`: The region to create the droplet in, see [Regions API](https://developers.digitalocean.com/documentation/v2/#regions) for how to get a list.
|
||||||
- `--digitalocean-size`: The size of the Digital Ocean droplet (larger than default options are of the form `2gb`).
|
- `--digitalocean-size`: The size of the Digital Ocean droplet (larger than default options are of the form `2gb`).
|
||||||
- `--digitalocean-ipv6`: Enable IPv6 support for the droplet.
|
- `--digitalocean-ipv6`: Enable IPv6 support for the droplet.
|
||||||
- `--digitalocean-private-networking`: Enable private networking support for the droplet.
|
- `--digitalocean-private-networking`: Enable private networking support for the droplet.
|
||||||
- `--digitalocean-backups`: Enable Digital Oceans backups for the droplet.
|
- `--digitalocean-backups`: Enable Digital Oceans backups for the droplet.
|
||||||
|
|
||||||
The DigitalOcean driver will use `ubuntu-14-04-x64` as the default image.
|
The DigitalOcean driver will use `ubuntu-14-04-x64` as the default image.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|-------------------------------------|-----------------------------------|----------|
|
| ----------------------------------- | --------------------------------- | -------- |
|
||||||
| **`--digitalocean-access-token`** | `DIGITALOCEAN_ACCESS_TOKEN` | - |
|
| **`--digitalocean-access-token`** | `DIGITALOCEAN_ACCESS_TOKEN` | - |
|
||||||
| `--digitalocean-image` | `DIGITALOCEAN_IMAGE` | `docker` |
|
| `--digitalocean-image` | `DIGITALOCEAN_IMAGE` | `docker` |
|
||||||
| `--digitalocean-region` | `DIGITALOCEAN_REGION` | `nyc3` |
|
| `--digitalocean-region` | `DIGITALOCEAN_REGION` | `nyc3` |
|
||||||
|
|
|
@ -9,27 +9,28 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# Exoscale
|
# Exoscale
|
||||||
|
|
||||||
Create machines on [exoscale](https://www.exoscale.ch/).
|
Create machines on [exoscale](https://www.exoscale.ch/).
|
||||||
|
|
||||||
Get your API key and API secret key from [API details](https://portal.exoscale.ch/account/api) and pass them to `machine create` with the `--exoscale-api-key` and `--exoscale-api-secret-key` options.
|
Get your API key and API secret key from [API details](https://portal.exoscale.ch/account/api) and pass them to `machine create` with the `--exoscale-api-key` and `--exoscale-api-secret-key` options.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--exoscale-url`: Your API endpoint.
|
- `--exoscale-url`: Your API endpoint.
|
||||||
- `--exoscale-api-key`: **required** Your API key.
|
- `--exoscale-api-key`: **required** Your API key.
|
||||||
- `--exoscale-api-secret-key`: **required** Your API secret key.
|
- `--exoscale-api-secret-key`: **required** Your API secret key.
|
||||||
- `--exoscale-instance-profile`: Instance profile.
|
- `--exoscale-instance-profile`: Instance profile.
|
||||||
- `--exoscale-disk-size`: Disk size for the host in GB.
|
- `--exoscale-disk-size`: Disk size for the host in GB.
|
||||||
- `--exoscale-image`: exoscale disk size. (10, 50, 100, 200, 400)
|
- `--exoscale-image`: exoscale disk size. (10, 50, 100, 200, 400)
|
||||||
- `--exoscale-security-group`: Security group. It will be created if it doesn't exist.
|
- `--exoscale-security-group`: Security group. It will be created if it doesn't exist.
|
||||||
- `--exoscale-availability-zone`: exoscale availability zone.
|
- `--exoscale-availability-zone`: exoscale availability zone.
|
||||||
|
|
||||||
If a custom security group is provided, you need to ensure that you allow TCP ports 22 and 2376 in an ingress rule. Moreover, if you want to use Swarm, also add TCP port 3376.
|
If a custom security group is provided, you need to ensure that you allow TCP ports 22 and 2376 in an ingress rule. Moreover, if you want to use Swarm, also add TCP port 3376.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|---------------------------------|------------------------------|-----------------------------------|
|
| ------------------------------- | ---------------------------- | --------------------------------- |
|
||||||
| `--exoscale-url` | `EXOSCALE_ENDPOINT` | `https://api.exoscale.ch/compute` |
|
| `--exoscale-url` | `EXOSCALE_ENDPOINT` | `https://api.exoscale.ch/compute` |
|
||||||
| **`--exoscale-api-key`** | `EXOSCALE_API_KEY` | - |
|
| **`--exoscale-api-key`** | `EXOSCALE_API_KEY` | - |
|
||||||
| **`--exoscale-api-secret-key`** | `EXOSCALE_API_SECRET` | - |
|
| **`--exoscale-api-secret-key`** | `EXOSCALE_API_SECRET` | - |
|
||||||
|
|
|
@ -12,7 +12,7 @@ parent="smn_machine_drivers"
|
||||||
|
|
||||||
Create machines on [Google Compute Engine](https://cloud.google.com/compute/).
|
Create machines on [Google Compute Engine](https://cloud.google.com/compute/).
|
||||||
You will need a Google account and a project id.
|
You will need a Google account and a project id.
|
||||||
See https://cloud.google.com/compute/docs/projects for details on projects.
|
See <https://cloud.google.com/compute/docs/projects> for details on projects.
|
||||||
|
|
||||||
### Credentials
|
### Credentials
|
||||||
|
|
||||||
|
@ -28,41 +28,38 @@ through the oauth2 process with `gcloud auth login`.
|
||||||
|
|
||||||
To create a machine instance, specify `--driver google`, the project id and the machine name.
|
To create a machine instance, specify `--driver google`, the project id and the machine name.
|
||||||
|
|
||||||
```
|
$ gcloud auth login
|
||||||
$ gcloud auth login
|
$ docker-machine create --driver google --google-project PROJECT_ID vm01
|
||||||
$ docker-machine create --driver google --google-project PROJECT_ID vm01
|
$ docker-machine create --driver google \
|
||||||
$ docker-machine create --driver google \
|
--google-project PROJECT_ID \
|
||||||
--google-project PROJECT_ID \
|
--google-zone us-central1-a \
|
||||||
--google-zone us-central1-a \
|
--google-machine-type f1-micro \
|
||||||
--google-machine-type f1-micro \
|
vm02
|
||||||
vm02
|
|
||||||
```
|
|
||||||
|
|
||||||
### Options
|
### Options
|
||||||
|
|
||||||
- `--google-project`: **required** The id of your project to use when launching the instance.
|
- `--google-project`: **required** The id of your project to use when launching the instance.
|
||||||
- `--google-zone`: The zone to launch the instance.
|
- `--google-zone`: The zone to launch the instance.
|
||||||
- `--google-machine-type`: The type of instance.
|
- `--google-machine-type`: The type of instance.
|
||||||
- `--google-machine-image`: The absolute URL to a base VM image to instantiate.
|
- `--google-machine-image`: The absolute URL to a base VM image to instantiate.
|
||||||
- `--google-username`: The username to use for the instance.
|
- `--google-username`: The username to use for the instance.
|
||||||
- `--google-scopes`: The scopes for OAuth 2.0 to Access Google APIs. See [Google Compute Engine Doc](https://cloud.google.com/storage/docs/authentication).
|
- `--google-scopes`: The scopes for OAuth 2.0 to Access Google APIs. See [Google Compute Engine Doc](https://cloud.google.com/storage/docs/authentication).
|
||||||
- `--google-disk-size`: The disk size of instance.
|
- `--google-disk-size`: The disk size of instance.
|
||||||
- `--google-disk-type`: The disk type of instance.
|
- `--google-disk-type`: The disk type of instance.
|
||||||
- `--google-address`: Instance's static external IP (name or IP).
|
- `--google-address`: Instance's static external IP (name or IP).
|
||||||
- `--google-preemptible`: Instance preemptibility.
|
- `--google-preemptible`: Instance preemptibility.
|
||||||
- `--google-tags`: Instance tags (comma-separated).
|
- `--google-tags`: Instance tags (comma-separated).
|
||||||
- `--google-use-internal-ip`: When this option is used during create it will make docker-machine use internal rather than public NATed IPs. The flag is persistent in the sense that a machine created with it retains the IP. It's useful for managing docker machines from another machine on the same network e.g. while deploying swarm.
|
- `--google-use-internal-ip`: When this option is used during create it will make docker-machine use internal rather than public NATed IPs. The flag is persistent in the sense that a machine created with it retains the IP. It's useful for managing docker machines from another machine on the same network e.g. while deploying swarm.
|
||||||
|
|
||||||
The GCE driver will use the `ubuntu-1404-trusty-v20151113` instance image unless otherwise specified. To obtain a
|
The GCE driver will use the `ubuntu-1404-trusty-v20151113` instance image unless otherwise specified. To obtain a
|
||||||
list of image URLs run:
|
list of image URLs run:
|
||||||
```
|
|
||||||
gcloud compute images list --uri
|
gcloud compute images list --uri
|
||||||
```
|
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|----------------------------|--------------------------|--------------------------------------|
|
| -------------------------- | ------------------------ | ------------------------------------ |
|
||||||
| **`--google-project`** | `GOOGLE_PROJECT` | - |
|
| **`--google-project`** | `GOOGLE_PROJECT` | - |
|
||||||
| `--google-zone` | `GOOGLE_ZONE` | `us-central1-a` |
|
| `--google-zone` | `GOOGLE_ZONE` | `us-central1-a` |
|
||||||
| `--google-machine-type` | `GOOGLE_MACHINE_TYPE` | `f1-standard-1` |
|
| `--google-machine-type` | `GOOGLE_MACHINE_TYPE` | `f1-standard-1` |
|
||||||
|
|
|
@ -32,4 +32,4 @@ Environment variables and default values:
|
||||||
| **`--generic-ip-address`** | `GENERIC_IP_ADDRESS` | - |
|
| **`--generic-ip-address`** | `GENERIC_IP_ADDRESS` | - |
|
||||||
| **`--generic-ssh-key`** | `GENERIC_SSH_KEY` | `$HOME/.ssh/id_rsa` |
|
| **`--generic-ssh-key`** | `GENERIC_SSH_KEY` | `$HOME/.ssh/id_rsa` |
|
||||||
| `--generic-ssh-user` | `GENERIC_SSH_USER` | `root` |
|
| `--generic-ssh-user` | `GENERIC_SSH_USER` | `root` |
|
||||||
| `--generic-ssh-port` | `GENERIC_SSH_PORT` | `22` |
|
| `--generic-ssh-port` | `GENERIC_SSH_PORT` | `22` |
|
||||||
|
|
|
@ -9,6 +9,7 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# Microsoft Hyper-V
|
# Microsoft Hyper-V
|
||||||
|
|
||||||
Creates a Boot2Docker virtual machine locally on your Windows machine
|
Creates a Boot2Docker virtual machine locally on your Windows machine
|
||||||
using Hyper-V. [See here](http://windows.microsoft.com/en-us/windows-8/hyper-v-run-virtual-machines)
|
using Hyper-V. [See here](http://windows.microsoft.com/en-us/windows-8/hyper-v-run-virtual-machines)
|
||||||
for instructions to enable Hyper-V. You will need to use an
|
for instructions to enable Hyper-V. You will need to use an
|
||||||
|
@ -23,18 +24,18 @@ Administrator level account to create and manage Hyper-V machines.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--hyperv-boot2docker-url`: The URL of the boot2docker ISO. Defaults to the latest available version.
|
- `--hyperv-boot2docker-url`: The URL of the boot2docker ISO. Defaults to the latest available version.
|
||||||
- `--hyperv-boot2docker-location`: Location of a local boot2docker iso to use. Overrides the URL option below.
|
- `--hyperv-boot2docker-location`: Location of a local boot2docker iso to use. Overrides the URL option below.
|
||||||
- `--hyperv-virtual-switch`: Name of the virtual switch to use. Defaults to first found.
|
- `--hyperv-virtual-switch`: Name of the virtual switch to use. Defaults to first found.
|
||||||
- `--hyperv-disk-size`: Size of disk for the host in MB.
|
- `--hyperv-disk-size`: Size of disk for the host in MB.
|
||||||
- `--hyperv-memory`: Size of memory for the host in MB. By default, the machine is setup to use dynamic memory.
|
- `--hyperv-memory`: Size of memory for the host in MB. By default, the machine is setup to use dynamic memory.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|----------------------------------|----------------------| -------------------------|
|
| ------------------------------- | -------------------- | ------------------------ |
|
||||||
| `--hyperv-boot2docker-url` | - | *Latest boot2docker url* |
|
| `--hyperv-boot2docker-url` | - | _Latest boot2docker url_ |
|
||||||
| `--hyperv-boot2docker-location` | - | - |
|
| `--hyperv-boot2docker-location` | - | - |
|
||||||
| `--hyperv-virtual-switch` | - | *first found* |
|
| `--hyperv-virtual-switch` | - | _first found_ |
|
||||||
| `--hyperv-disk-size` | - | `20000` |
|
| `--hyperv-disk-size` | - | `20000` |
|
||||||
| `--hyperv-memory` | - | `1024` |
|
| `--hyperv-memory` | - | `1024` |
|
||||||
|
|
|
@ -11,17 +11,17 @@ identifier="smn_machine_drivers"
|
||||||
|
|
||||||
# Supported Drivers
|
# Supported Drivers
|
||||||
|
|
||||||
* [Amazon Web Services](aws.md)
|
- [Amazon Web Services](aws.md)
|
||||||
* [Microsoft Azure](azure.md)
|
- [Microsoft Azure](azure.md)
|
||||||
* [Digital Ocean](digital-ocean.md)
|
- [Digital Ocean](digital-ocean.md)
|
||||||
* [Exoscale](exoscale.md)
|
- [Exoscale](exoscale.md)
|
||||||
* [Google Compute Engine](gce.md)
|
- [Google Compute Engine](gce.md)
|
||||||
* [Generic](generic.md)
|
- [Generic](generic.md)
|
||||||
* [Microsoft Hyper-V](hyper-v.md)
|
- [Microsoft Hyper-V](hyper-v.md)
|
||||||
* [OpenStack](openstack.md)
|
- [OpenStack](openstack.md)
|
||||||
* [Rackspace](rackspace.md)
|
- [Rackspace](rackspace.md)
|
||||||
* [IBM Softlayer](soft-layer.md)
|
- [IBM Softlayer](soft-layer.md)
|
||||||
* [Oracle VirtualBox](virtualbox.md)
|
- [Oracle VirtualBox](virtualbox.md)
|
||||||
* [VMware vCloud Air](vm-cloud.md)
|
- [VMware vCloud Air](vm-cloud.md)
|
||||||
* [VMware Fusion](vm-fusion.md)
|
- [VMware Fusion](vm-fusion.md)
|
||||||
* [VMware vSphere](vsphere.md)
|
- [VMware vSphere](vsphere.md)
|
||||||
|
|
|
@ -9,60 +9,61 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# OpenStack
|
# OpenStack
|
||||||
|
|
||||||
Create machines on [OpenStack](http://www.openstack.org/software/)
|
Create machines on [OpenStack](http://www.openstack.org/software/)
|
||||||
|
|
||||||
Mandatory:
|
Mandatory:
|
||||||
|
|
||||||
- `--openstack-auth-url`: Keystone service base URL.
|
- `--openstack-auth-url`: Keystone service base URL.
|
||||||
- `--openstack-flavor-id` or `--openstack-flavor-name`: Identify the flavor that will be used for the machine.
|
- `--openstack-flavor-id` or `--openstack-flavor-name`: Identify the flavor that will be used for the machine.
|
||||||
- `--openstack-image-id` or `--openstack-image-name`: Identify the image that will be used for the machine.
|
- `--openstack-image-id` or `--openstack-image-name`: Identify the image that will be used for the machine.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--openstack-insecure`: Explicitly allow openstack driver to perform "insecure" SSL (https) requests. The server's certificate will not be verified against any certificate authorities. This option should be used with caution.
|
- `--openstack-insecure`: Explicitly allow openstack driver to perform "insecure" SSL (https) requests. The server's certificate will not be verified against any certificate authorities. This option should be used with caution.
|
||||||
- `--openstack-domain-name` or `--openstack-domain-id`: Domain to use for authentication (Keystone v3 only)
|
- `--openstack-domain-name` or `--openstack-domain-id`: Domain to use for authentication (Keystone v3 only)
|
||||||
- `--openstack-username`: User identifier to authenticate with.
|
- `--openstack-username`: User identifier to authenticate with.
|
||||||
- `--openstack-password`: User password. It can be omitted if the standard environment variable `OS_PASSWORD` is set.
|
- `--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-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 only one region on the OpenStack.
|
- `--openstack-region`: The region to work on. Can be omitted if there is only one region on the OpenStack.
|
||||||
- `--openstack-availability-zone`: The availability zone in which to launch the server.
|
- `--openstack-availability-zone`: The availability zone in which to launch the server.
|
||||||
- `--openstack-endpoint-type`: Endpoint type can be `internalURL`, `adminURL` on `publicURL`. If is a helper for the driver
|
- `--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`
|
to choose the right URL in the OpenStack service catalog. If not provided the default id `publicURL`
|
||||||
- `--openstack-net-name` or `--openstack-net-id`: Identify the private network the machine will be connected on. If your OpenStack project project contains only one private network it will be use automatically.
|
- `--openstack-net-name` or `--openstack-net-id`: Identify the private network 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
|
- `--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`).
|
to use for the machine (e.g. `secgrp001,secgrp002`).
|
||||||
- `--openstack-floatingip-pool`: The IP pool that will be used to get a public IP can assign it to the machine. If there is an
|
- `--openstack-floatingip-pool`: The IP pool that will be used to get a public IP can 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
|
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.
|
there is no IP address already allocated a new IP will be allocated and assigned to the machine.
|
||||||
- `--openstack-ip-version`: If the instance has both IPv4 and IPv6 address, you can select IP version. If not provided `4` will be used.
|
- `--openstack-ip-version`: If the instance has both IPv4 and IPv6 address, you can select IP version. If not provided `4` will be used.
|
||||||
- `--openstack-ssh-user`: The username to use for SSH into the machine. If not provided `root` will be used.
|
- `--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-ssh-port`: Customize the SSH port if the SSH server on the machine does not listen on the default port.
|
||||||
- `--openstack-active-timeout`: The timeout in seconds until the OpenStack instance must be active.
|
- `--openstack-active-timeout`: The timeout in seconds until the OpenStack instance must be active.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|----------------------------------|------------------------|-------------|
|
| ------------------------------- | ---------------------- | ----------- |
|
||||||
| `--openstack-auth-url` | `OS_AUTH_URL` | - |
|
| `--openstack-auth-url` | `OS_AUTH_URL` | - |
|
||||||
| `--openstack-flavor-name` | `OS_FLAVOR_NAME` | - |
|
| `--openstack-flavor-name` | `OS_FLAVOR_NAME` | - |
|
||||||
| `--openstack-flavor-id` | `OS_FLAVOR_ID` | - |
|
| `--openstack-flavor-id` | `OS_FLAVOR_ID` | - |
|
||||||
| `--openstack-image-name` | `OS_IMAGE_NAME` | - |
|
| `--openstack-image-name` | `OS_IMAGE_NAME` | - |
|
||||||
| `--openstack-image-id` | `OS_IMAGE_ID` | - |
|
| `--openstack-image-id` | `OS_IMAGE_ID` | - |
|
||||||
| `--openstack-insecure` | `OS_INSECURE` | `false` |
|
| `--openstack-insecure` | `OS_INSECURE` | `false` |
|
||||||
| `--openstack-domain-name` | `OS_DOMAIN_NAME` | - |
|
| `--openstack-domain-name` | `OS_DOMAIN_NAME` | - |
|
||||||
| `--openstack-domain-id` | `OS_DOMAIN_ID` | - |
|
| `--openstack-domain-id` | `OS_DOMAIN_ID` | - |
|
||||||
| `--openstack-username` | `OS_USERNAME` | - |
|
| `--openstack-username` | `OS_USERNAME` | - |
|
||||||
| `--openstack-password` | `OS_PASSWORD` | - |
|
| `--openstack-password` | `OS_PASSWORD` | - |
|
||||||
| `--openstack-tenant-name` | `OS_TENANT_NAME` | - |
|
| `--openstack-tenant-name` | `OS_TENANT_NAME` | - |
|
||||||
| `--openstack-tenant-id` | `OS_TENANT_ID` | - |
|
| `--openstack-tenant-id` | `OS_TENANT_ID` | - |
|
||||||
| `--openstack-region` | `OS_REGION_NAME` | - |
|
| `--openstack-region` | `OS_REGION_NAME` | - |
|
||||||
| `--openstack-availability-zone` | `OS_AVAILABILITY_ZONE` | - |
|
| `--openstack-availability-zone` | `OS_AVAILABILITY_ZONE` | - |
|
||||||
| `--openstack-endpoint-type` | `OS_ENDPOINT_TYPE` | `publicURL` |
|
| `--openstack-endpoint-type` | `OS_ENDPOINT_TYPE` | `publicURL` |
|
||||||
| `--openstack-net-name` | `OS_NETWORK_NAME` | - |
|
| `--openstack-net-name` | `OS_NETWORK_NAME` | - |
|
||||||
| `--openstack-net-id` | `OS_NETWORK_ID` | - |
|
| `--openstack-net-id` | `OS_NETWORK_ID` | - |
|
||||||
| `--openstack-sec-groups` | `OS_SECURITY_GROUPS` | - |
|
| `--openstack-sec-groups` | `OS_SECURITY_GROUPS` | - |
|
||||||
| `--openstack-floatingip-pool` | `OS_FLOATINGIP_POOL` | - |
|
| `--openstack-floatingip-pool` | `OS_FLOATINGIP_POOL` | - |
|
||||||
| `--openstack-ip-version` | `OS_IP_VERSION` | `4` |
|
| `--openstack-ip-version` | `OS_IP_VERSION` | `4` |
|
||||||
| `--openstack-ssh-user` | `OS_SSH_USER` | `root` |
|
| `--openstack-ssh-user` | `OS_SSH_USER` | `root` |
|
||||||
| `--openstack-ssh-port` | `OS_SSH_PORT` | `22` |
|
| `--openstack-ssh-port` | `OS_SSH_PORT` | `22` |
|
||||||
| `--openstack-active-timeout` | `OS_ACTIVE_TIMEOUT` | `200` |
|
| `--openstack-active-timeout` | `OS_ACTIVE_TIMEOUT` | `200` |
|
||||||
|
|
|
@ -36,15 +36,15 @@ remote providers. For local providers such as VirtualBox, Fusion, Hyper-V, and
|
||||||
so forth, the default base operating system is Boot2Docker. For cloud providers,
|
so forth, the default base operating system is Boot2Docker. For cloud providers,
|
||||||
the base operating system is the latest Ubuntu LTS the provider supports.
|
the base operating system is the latest Ubuntu LTS the provider supports.
|
||||||
|
|
||||||
| Operating System | Version | Notes |
|
| Operating System | Version | Notes |
|
||||||
|----------------------------|------------------|-------------------------|
|
| ----------------------- | ------- | ------------------ |
|
||||||
| Boot2Docker | 1.5+ | default for local |
|
| Boot2Docker | 1.5+ | default for local |
|
||||||
| Ubuntu | 12.04+ | default for remote |
|
| Ubuntu | 12.04+ | default for remote |
|
||||||
| RancherOS | 0.3+ | |
|
| RancherOS | 0.3+ | |
|
||||||
| Debian | 8.0+ | experimental |
|
| Debian | 8.0+ | experimental |
|
||||||
| RedHat Enterprise Linux | 7.0+ | experimental |
|
| RedHat Enterprise Linux | 7.0+ | experimental |
|
||||||
| CentOS | 7+ | experimental |
|
| CentOS | 7+ | experimental |
|
||||||
| Fedora | 21+ | experimental |
|
| Fedora | 21+ | experimental |
|
||||||
|
|
||||||
To use a different base operating system on a remote provider, specify the
|
To use a different base operating system on a remote provider, specify the
|
||||||
provider's image flag and one of its available images. For example, to select a
|
provider's image flag and one of its available images. For example, to select a
|
||||||
|
|
|
@ -9,26 +9,27 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# Rackspace
|
# Rackspace
|
||||||
|
|
||||||
Create machines on [Rackspace cloud](http://www.rackspace.com/cloud)
|
Create machines on [Rackspace cloud](http://www.rackspace.com/cloud)
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--rackspace-username`: **required** Rackspace account username.
|
- `--rackspace-username`: **required** Rackspace account username.
|
||||||
- `--rackspace-api-key`: **required** Rackspace API key.
|
- `--rackspace-api-key`: **required** Rackspace API key.
|
||||||
- `--rackspace-region`: **required** Rackspace region name.
|
- `--rackspace-region`: **required** Rackspace region name.
|
||||||
- `--rackspace-endpoint-type`: Rackspace endpoint type (`adminURL`, `internalURL` or the default `publicURL`).
|
- `--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-image-id`: Rackspace image ID. Default: Ubuntu 14.10 (Utopic Unicorn) (PVHVM).
|
||||||
- `--rackspace-flavor-id`: Rackspace flavor ID. Default: General Purpose 1GB.
|
- `--rackspace-flavor-id`: Rackspace flavor ID. Default: General Purpose 1GB.
|
||||||
- `--rackspace-ssh-user`: SSH user for the newly booted machine.
|
- `--rackspace-ssh-user`: SSH user for the newly booted machine.
|
||||||
- `--rackspace-ssh-port`: SSH port for the newly booted machine.
|
- `--rackspace-ssh-port`: SSH port for the newly booted machine.
|
||||||
- `--rackspace-docker-install`: Set if Docker has to be installed on the machine.
|
- `--rackspace-docker-install`: Set if Docker has to be installed on the machine.
|
||||||
|
|
||||||
The Rackspace driver will use `598a4282-f14b-4e50-af4c-b3e52749d9f9` (Ubuntu 14.04 LTS) by default.
|
The Rackspace driver will use `598a4282-f14b-4e50-af4c-b3e52749d9f9` (Ubuntu 14.04 LTS) by default.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|------------------------------|----------------------|----------------------------------------|
|
| ---------------------------- | -------------------- | -------------------------------------- |
|
||||||
| **`--rackspace-username`** | `OS_USERNAME` | - |
|
| **`--rackspace-username`** | `OS_USERNAME` | - |
|
||||||
| **`--rackspace-api-key`** | `OS_API_KEY` | - |
|
| **`--rackspace-api-key`** | `OS_API_KEY` | - |
|
||||||
| **`--rackspace-region`** | `OS_REGION_NAME` | - |
|
| **`--rackspace-region`** | `OS_REGION_NAME` | - |
|
||||||
|
|
|
@ -9,6 +9,7 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# IBM Softlayer
|
# IBM Softlayer
|
||||||
|
|
||||||
Create machines on [Softlayer](http://softlayer.com).
|
Create machines on [Softlayer](http://softlayer.com).
|
||||||
|
|
||||||
You need to generate an API key in the softlayer control panel.
|
You need to generate an API key in the softlayer control panel.
|
||||||
|
@ -16,28 +17,28 @@ You need to generate an API key in the softlayer control panel.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--softlayer-memory`: Memory for host in MB.
|
- `--softlayer-memory`: Memory for host in MB.
|
||||||
- `--softlayer-disk-size`: A value of `0` will set the SoftLayer default.
|
- `--softlayer-disk-size`: A value of `0` will set the SoftLayer default.
|
||||||
- `--softlayer-user`: **required** Username for your SoftLayer account, api key needs to match this user.
|
- `--softlayer-user`: **required** Username for your SoftLayer account, api key needs to match this user.
|
||||||
- `--softlayer-api-key`: **required** API key for your user account.
|
- `--softlayer-api-key`: **required** API key for your user account.
|
||||||
- `--softlayer-region`: SoftLayer region.
|
- `--softlayer-region`: SoftLayer region.
|
||||||
- `--softlayer-cpu`: Number of CPUs for the machine.
|
- `--softlayer-cpu`: Number of CPUs for the machine.
|
||||||
- `--softlayer-hostname`: Hostname for the machine.
|
- `--softlayer-hostname`: Hostname for the machine.
|
||||||
- `--softlayer-domain`: **required** Domain name for the machine.
|
- `--softlayer-domain`: **required** Domain name for the machine.
|
||||||
- `--softlayer-api-endpoint`: Change SoftLayer API endpoint.
|
- `--softlayer-api-endpoint`: Change SoftLayer API endpoint.
|
||||||
- `--softlayer-hourly-billing`: Specifies that hourly billing should be used (default), otherwise monthly billing is used.
|
- `--softlayer-hourly-billing`: Specifies that hourly billing should be used (default), otherwise monthly billing is used.
|
||||||
- `--softlayer-local-disk`: Use local machine disk instead of SoftLayer SAN.
|
- `--softlayer-local-disk`: Use local machine disk instead of SoftLayer SAN.
|
||||||
- `--softlayer-private-net-only`: Disable public networking.
|
- `--softlayer-private-net-only`: Disable public networking.
|
||||||
- `--softlayer-image`: OS Image to use.
|
- `--softlayer-image`: OS Image to use.
|
||||||
- `--softlayer-public-vlan-id`: Your public VLAN ID.
|
- `--softlayer-public-vlan-id`: Your public VLAN ID.
|
||||||
- `--softlayer-private-vlan-id`: Your private VLAN ID.
|
- `--softlayer-private-vlan-id`: Your private VLAN ID.
|
||||||
|
|
||||||
The SoftLayer driver will use `UBUNTU_LATEST` as the image type by default.
|
The SoftLayer driver will use `UBUNTU_LATEST` as the image type by default.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|--------------------------------|-----------------------------|-----------------------------|
|
| ------------------------------ | --------------------------- | --------------------------- |
|
||||||
| `--softlayer-memory` | `SOFTLAYER_MEMORY` | `1024` |
|
| `--softlayer-memory` | `SOFTLAYER_MEMORY` | `1024` |
|
||||||
| `--softlayer-disk-size` | `SOFTLAYER_DISK_SIZE` | `0` |
|
| `--softlayer-disk-size` | `SOFTLAYER_DISK_SIZE` | `0` |
|
||||||
| **`--softlayer-user`** | `SOFTLAYER_USER` | - |
|
| **`--softlayer-user`** | `SOFTLAYER_USER` | - |
|
||||||
|
@ -52,4 +53,4 @@ Environment variables and default values:
|
||||||
| `--softlayer-private-net-only` | `SOFTLAYER_PRIVATE_NET` | `false` |
|
| `--softlayer-private-net-only` | `SOFTLAYER_PRIVATE_NET` | `false` |
|
||||||
| `--softlayer-image` | `SOFTLAYER_IMAGE` | `UBUNTU_LATEST` |
|
| `--softlayer-image` | `SOFTLAYER_IMAGE` | `UBUNTU_LATEST` |
|
||||||
| `--softlayer-public-vlan-id` | `SOFTLAYER_PUBLIC_VLAN_ID` | `0` |
|
| `--softlayer-public-vlan-id` | `SOFTLAYER_PUBLIC_VLAN_ID` | `0` |
|
||||||
| `--softlayer-private-vlan-id` | `SOFTLAYER_PRIVATE_VLAN_ID` | `0` |
|
| `--softlayer-private-vlan-id` | `SOFTLAYER_PRIVATE_VLAN_ID` | `0` |
|
||||||
|
|
|
@ -9,6 +9,7 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# Oracle VirtualBox
|
# Oracle VirtualBox
|
||||||
|
|
||||||
Create machines locally using [VirtualBox](https://www.virtualbox.org/).
|
Create machines locally using [VirtualBox](https://www.virtualbox.org/).
|
||||||
This driver requires VirtualBox 4+ to be installed on your host.
|
This driver requires VirtualBox 4+ to be installed on your host.
|
||||||
|
|
||||||
|
@ -20,18 +21,17 @@ command:
|
||||||
|
|
||||||
$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm b2d
|
$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm b2d
|
||||||
|
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--virtualbox-memory`: Size of memory for the host in MB.
|
- `--virtualbox-memory`: Size of memory for the host in MB.
|
||||||
- `--virtualbox-cpu-count`: Number of CPUs to use to create the VM. Defaults to single CPU.
|
- `--virtualbox-cpu-count`: Number of CPUs to use to create the VM. Defaults to single CPU.
|
||||||
- `--virtualbox-disk-size`: Size of disk for the host in MB.
|
- `--virtualbox-disk-size`: Size of disk for the host in MB.
|
||||||
- `--virtualbox-boot2docker-url`: The URL of the boot2docker image. Defaults to the latest available version.
|
- `--virtualbox-boot2docker-url`: The URL of the boot2docker image. Defaults to the latest available version.
|
||||||
- `--virtualbox-import-boot2docker-vm`: The name of a Boot2Docker VM to import.
|
- `--virtualbox-import-boot2docker-vm`: The name of a Boot2Docker VM to import.
|
||||||
- `--virtualbox-hostonly-cidr`: The CIDR of the host only adapter.
|
- `--virtualbox-hostonly-cidr`: The CIDR of the host only adapter.
|
||||||
- `--virtualbox-hostonly-nictype`: Host Only Network Adapter Type. Possible values are are '82540EM' (Intel PRO/1000), 'Am79C973' (PCnet-FAST III) and 'virtio-net' Paravirtualized network adapter.
|
- `--virtualbox-hostonly-nictype`: Host Only Network Adapter Type. Possible values are are '82540EM' (Intel PRO/1000), 'Am79C973' (PCnet-FAST III) and 'virtio-net' Paravirtualized network adapter.
|
||||||
- `--virtualbox-hostonly-nicpromisc`: Host Only Network Adapter Promiscuous Mode. Possible options are deny , allow-vms, allow-all
|
- `--virtualbox-hostonly-nicpromisc`: Host Only Network Adapter Promiscuous Mode. Possible options are deny , allow-vms, allow-all
|
||||||
- `--virtualbox-no-share`: Disable the mount of your home directory
|
- `--virtualbox-no-share`: Disable the mount of your home directory
|
||||||
|
|
||||||
The `--virtualbox-boot2docker-url` flag takes a few different forms. By
|
The `--virtualbox-boot2docker-url` flag takes a few different forms. By
|
||||||
default, if no value is specified for this flag, Machine will check locally for
|
default, if no value is specified for this flag, Machine will check locally for
|
||||||
|
@ -62,11 +62,11 @@ upper bound of `192.168.24.254`.
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|--------------------------------------|------------------------------------|--------------------------|
|
| ------------------------------------ | ---------------------------------- | ------------------------ |
|
||||||
| `--virtualbox-memory` | `VIRTUALBOX_MEMORY_SIZE` | `1024` |
|
| `--virtualbox-memory` | `VIRTUALBOX_MEMORY_SIZE` | `1024` |
|
||||||
| `--virtualbox-cpu-count` | `VIRTUALBOX_CPU_COUNT` | `1` |
|
| `--virtualbox-cpu-count` | `VIRTUALBOX_CPU_COUNT` | `1` |
|
||||||
| `--virtualbox-disk-size` | `VIRTUALBOX_DISK_SIZE` | `20000` |
|
| `--virtualbox-disk-size` | `VIRTUALBOX_DISK_SIZE` | `20000` |
|
||||||
| `--virtualbox-boot2docker-url` | `VIRTUALBOX_BOOT2DOCKER_URL` | *Latest boot2docker url* |
|
| `--virtualbox-boot2docker-url` | `VIRTUALBOX_BOOT2DOCKER_URL` | _Latest boot2docker url_ |
|
||||||
| `--virtualbox-import-boot2docker-vm` | `VIRTUALBOX_BOOT2DOCKER_IMPORT_VM` | `boot2docker-vm` |
|
| `--virtualbox-import-boot2docker-vm` | `VIRTUALBOX_BOOT2DOCKER_IMPORT_VM` | `boot2docker-vm` |
|
||||||
| `--virtualbox-hostonly-cidr` | `VIRTUALBOX_HOSTONLY_CIDR` | `192.168.99.1/24` |
|
| `--virtualbox-hostonly-cidr` | `VIRTUALBOX_HOSTONLY_CIDR` | `192.168.99.1/24` |
|
||||||
| `--virtualbox-hostonly-nictype` | `VIRTUALBOX_HOSTONLY_NIC_TYPE` | `82540EM` |
|
| `--virtualbox-hostonly-nictype` | `VIRTUALBOX_HOSTONLY_NIC_TYPE` | `82540EM` |
|
||||||
|
|
|
@ -9,31 +9,32 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# VMware vCloud Air
|
# 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.
|
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:
|
Options:
|
||||||
|
|
||||||
- `--vmwarevcloudair-username`: **required** vCloud Air Username.
|
- `--vmwarevcloudair-username`: **required** vCloud Air Username.
|
||||||
- `--vmwarevcloudair-password`: **required** vCloud Air Password.
|
- `--vmwarevcloudair-password`: **required** vCloud Air Password.
|
||||||
- `--vmwarevcloudair-computeid`: Compute ID (if using Dedicated Cloud).
|
- `--vmwarevcloudair-computeid`: Compute ID (if using Dedicated Cloud).
|
||||||
- `--vmwarevcloudair-vdcid`: Virtual Data Center ID.
|
- `--vmwarevcloudair-vdcid`: Virtual Data Center ID.
|
||||||
- `--vmwarevcloudair-orgvdcnetwork`: Organization VDC Network to attach.
|
- `--vmwarevcloudair-orgvdcnetwork`: Organization VDC Network to attach.
|
||||||
- `--vmwarevcloudair-edgegateway`: Organization Edge Gateway.
|
- `--vmwarevcloudair-edgegateway`: Organization Edge Gateway.
|
||||||
- `--vmwarevcloudair-publicip`: Org Public IP to use.
|
- `--vmwarevcloudair-publicip`: Org Public IP to use.
|
||||||
- `--vmwarevcloudair-catalog`: Catalog.
|
- `--vmwarevcloudair-catalog`: Catalog.
|
||||||
- `--vmwarevcloudair-catalogitem`: Catalog Item.
|
- `--vmwarevcloudair-catalogitem`: Catalog Item.
|
||||||
- `--vmwarevcloudair-provision`: Install Docker binaries.
|
- `--vmwarevcloudair-provision`: Install Docker binaries.
|
||||||
- `--vmwarevcloudair-cpu-count`: VM CPU Count.
|
- `--vmwarevcloudair-cpu-count`: VM CPU Count.
|
||||||
- `--vmwarevcloudair-memory-size`: VM Memory Size in MB.
|
- `--vmwarevcloudair-memory-size`: VM Memory Size in MB.
|
||||||
- `--vmwarevcloudair-ssh-port`: SSH port.
|
- `--vmwarevcloudair-ssh-port`: SSH port.
|
||||||
- `--vmwarevcloudair-docker-port`: Docker port.
|
- `--vmwarevcloudair-docker-port`: Docker port.
|
||||||
|
|
||||||
The VMware vCloud Air driver will use the `Ubuntu Server 12.04 LTS (amd64 20140927)` image by default.
|
The VMware vCloud Air driver will use the `Ubuntu Server 12.04 LTS (amd64 20140927)` image by default.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|-----------------------------------|---------------------------|--------------------------------------------|
|
| --------------------------------- | ------------------------- | ------------------------------------------ |
|
||||||
| **`--vmwarevcloudair-username`** | `VCLOUDAIR_USERNAME` | - |
|
| **`--vmwarevcloudair-username`** | `VCLOUDAIR_USERNAME` | - |
|
||||||
| **`--vmwarevcloudair-password`** | `VCLOUDAIR_PASSWORD` | - |
|
| **`--vmwarevcloudair-password`** | `VCLOUDAIR_PASSWORD` | - |
|
||||||
| `--vmwarevcloudair-computeid` | `VCLOUDAIR_COMPUTEID` | - |
|
| `--vmwarevcloudair-computeid` | `VCLOUDAIR_COMPUTEID` | - |
|
||||||
|
@ -47,4 +48,4 @@ Environment variables and default values:
|
||||||
| `--vmwarevcloudair-cpu-count` | `VCLOUDAIR_CPU_COUNT` | `1` |
|
| `--vmwarevcloudair-cpu-count` | `VCLOUDAIR_CPU_COUNT` | `1` |
|
||||||
| `--vmwarevcloudair-memory-size` | `VCLOUDAIR_MEMORY_SIZE` | `2048` |
|
| `--vmwarevcloudair-memory-size` | `VCLOUDAIR_MEMORY_SIZE` | `2048` |
|
||||||
| `--vmwarevcloudair-ssh-port` | `VCLOUDAIR_SSH_PORT` | `22` |
|
| `--vmwarevcloudair-ssh-port` | `VCLOUDAIR_SSH_PORT` | `22` |
|
||||||
| `--vmwarevcloudair-docker-port` | `VCLOUDAIR_DOCKER_PORT` | `2376` |
|
| `--vmwarevcloudair-docker-port` | `VCLOUDAIR_DOCKER_PORT` | `2376` |
|
||||||
|
|
|
@ -9,15 +9,16 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# VMware Fusion
|
# VMware Fusion
|
||||||
|
|
||||||
Creates machines locally on [VMware Fusion](http://www.vmware.com/products/fusion). Requires VMware Fusion to be installed.
|
Creates machines locally on [VMware Fusion](http://www.vmware.com/products/fusion). Requires VMware Fusion to be installed.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
- `--vmwarefusion-boot2docker-url`: URL for boot2docker image.
|
- `--vmwarefusion-boot2docker-url`: URL for boot2docker image.
|
||||||
- `--vmwarefusion-cpu-count`: Number of CPUs for the machine (-1 to use the number of CPUs available)
|
- `--vmwarefusion-cpu-count`: Number of CPUs for the machine (-1 to use the number of CPUs available)
|
||||||
- `--vmwarefusion-disk-size`: Size of disk for host VM (in MB).
|
- `--vmwarefusion-disk-size`: Size of disk for host VM (in MB).
|
||||||
- `--vmwarefusion-memory-size`: Size of memory for host VM (in MB).
|
- `--vmwarefusion-memory-size`: Size of memory for host VM (in MB).
|
||||||
- `--vmwarefusion-no-share`: Disable the mount of your home directory.
|
- `--vmwarefusion-no-share`: Disable the mount of your home directory.
|
||||||
|
|
||||||
The VMware Fusion driver uses the latest boot2docker image.
|
The VMware Fusion driver uses the latest boot2docker image.
|
||||||
See [frapposelli/boot2docker](https://github.com/frapposelli/boot2docker/tree/vmware-64bit)
|
See [frapposelli/boot2docker](https://github.com/frapposelli/boot2docker/tree/vmware-64bit)
|
||||||
|
@ -25,8 +26,8 @@ See [frapposelli/boot2docker](https://github.com/frapposelli/boot2docker/tree/vm
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|----------------------------------|--------------------------|--------------------------|
|
| -------------------------------- | ------------------------ | ------------------------ |
|
||||||
| `--vmwarefusion-boot2docker-url` | `FUSION_BOOT2DOCKER_URL` | *Latest boot2docker url* |
|
| `--vmwarefusion-boot2docker-url` | `FUSION_BOOT2DOCKER_URL` | _Latest boot2docker url_ |
|
||||||
| `--vmwarefusion-cpu-count` | `FUSION_CPU_COUNT` | `1` |
|
| `--vmwarefusion-cpu-count` | `FUSION_CPU_COUNT` | `1` |
|
||||||
| `--vmwarefusion-disk-size` | `FUSION_DISK_SIZE` | `20000` |
|
| `--vmwarefusion-disk-size` | `FUSION_DISK_SIZE` | `20000` |
|
||||||
| `--vmwarefusion-memory-size` | `FUSION_MEMORY_SIZE` | `1024` |
|
| `--vmwarefusion-memory-size` | `FUSION_MEMORY_SIZE` | `1024` |
|
||||||
|
|
|
@ -9,33 +9,34 @@ parent="smn_machine_drivers"
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
# VMware vSphere
|
# VMware vSphere
|
||||||
|
|
||||||
Creates machines on a [VMware vSphere](http://www.vmware.com/products/vsphere) Virtual Infrastructure. The machine must have a working vSphere ESXi installation. You can use a paid license or free 60 day trial license. Your installation may also include an optional VCenter server. 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).
|
Creates machines on a [VMware vSphere](http://www.vmware.com/products/vsphere) Virtual Infrastructure. The machine must have a working vSphere ESXi installation. You can use a paid license or free 60 day trial license. Your installation may also include an optional VCenter server. 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:
|
Options:
|
||||||
|
|
||||||
- `--vmwarevsphere-cpu-count`: CPU number for Docker VM.
|
- `--vmwarevsphere-cpu-count`: CPU number for Docker VM.
|
||||||
- `--vmwarevsphere-memory-size`: Size of memory for Docker VM (in MB).
|
- `--vmwarevsphere-memory-size`: Size of memory for Docker VM (in MB).
|
||||||
- `--vmwarevsphere-boot2docker-url`: URL for boot2docker image.
|
- `--vmwarevsphere-boot2docker-url`: URL for boot2docker image.
|
||||||
- `--vmwarevsphere-vcenter`: IP/hostname for vCenter (or ESXi if connecting directly to a single host).
|
- `--vmwarevsphere-vcenter`: IP/hostname for vCenter (or ESXi if connecting directly to a single host).
|
||||||
- `--vmwarevsphere-disk-size`: Size of disk for Docker VM (in MB).
|
- `--vmwarevsphere-disk-size`: Size of disk for Docker VM (in MB).
|
||||||
- `--vmwarevsphere-username`: **required** vSphere Username.
|
- `--vmwarevsphere-username`: **required** vSphere Username.
|
||||||
- `--vmwarevsphere-password`: **required** vSphere Password.
|
- `--vmwarevsphere-password`: **required** vSphere Password.
|
||||||
- `--vmwarevsphere-network`: Network where the Docker VM will be attached.
|
- `--vmwarevsphere-network`: Network where the Docker VM will be attached.
|
||||||
- `--vmwarevsphere-datastore`: Datastore for Docker VM.
|
- `--vmwarevsphere-datastore`: Datastore for Docker VM.
|
||||||
- `--vmwarevsphere-datacenter`: Datacenter for Docker VM (must be set to `ha-datacenter` when connecting to a single host).
|
- `--vmwarevsphere-datacenter`: Datacenter for Docker VM (must be set to `ha-datacenter` when connecting to a single host).
|
||||||
- `--vmwarevsphere-pool`: Resource pool for Docker VM.
|
- `--vmwarevsphere-pool`: Resource pool for Docker VM.
|
||||||
- `--vmwarevsphere-compute-ip`: Compute host IP where the Docker VM will be instantiated.
|
- `--vmwarevsphere-compute-ip`: Compute host IP where the Docker VM will be instantiated.
|
||||||
|
|
||||||
The VMware vSphere driver uses the latest boot2docker image.
|
The VMware vSphere driver uses the latest boot2docker image.
|
||||||
|
|
||||||
Environment variables and default values:
|
Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
|-----------------------------------|---------------------------|--------------------------|
|
| --------------------------------- | ------------------------- | ------------------------ |
|
||||||
| `--vmwarevsphere-cpu-count` | `VSPHERE_CPU_COUNT` | `2` |
|
| `--vmwarevsphere-cpu-count` | `VSPHERE_CPU_COUNT` | `2` |
|
||||||
| `--vmwarevsphere-memory-size` | `VSPHERE_MEMORY_SIZE` | `2048` |
|
| `--vmwarevsphere-memory-size` | `VSPHERE_MEMORY_SIZE` | `2048` |
|
||||||
| `--vmwarevsphere-disk-size` | `VSPHERE_DISK_SIZE` | `20000` |
|
| `--vmwarevsphere-disk-size` | `VSPHERE_DISK_SIZE` | `20000` |
|
||||||
| `--vmwarevsphere-boot2docker-url` | `VSPHERE_BOOT2DOCKER_URL` | *Latest boot2docker url* |
|
| `--vmwarevsphere-boot2docker-url` | `VSPHERE_BOOT2DOCKER_URL` | _Latest boot2docker url_ |
|
||||||
| `--vmwarevsphere-vcenter` | `VSPHERE_VCENTER` | - |
|
| `--vmwarevsphere-vcenter` | `VSPHERE_VCENTER` | - |
|
||||||
| **`--vmwarevsphere-username`** | `VSPHERE_USERNAME` | - |
|
| **`--vmwarevsphere-username`** | `VSPHERE_USERNAME` | - |
|
||||||
| **`--vmwarevsphere-password`** | `VSPHERE_PASSWORD` | - |
|
| **`--vmwarevsphere-password`** | `VSPHERE_PASSWORD` | - |
|
||||||
|
@ -43,4 +44,4 @@ Environment variables and default values:
|
||||||
| `--vmwarevsphere-datastore` | `VSPHERE_DATASTORE` | - |
|
| `--vmwarevsphere-datastore` | `VSPHERE_DATASTORE` | - |
|
||||||
| `--vmwarevsphere-datacenter` | `VSPHERE_DATACENTER` | - |
|
| `--vmwarevsphere-datacenter` | `VSPHERE_DATACENTER` | - |
|
||||||
| `--vmwarevsphere-pool` | `VSPHERE_POOL` | - |
|
| `--vmwarevsphere-pool` | `VSPHERE_POOL` | - |
|
||||||
| `--vmwarevsphere-compute-ip` | `VSPHERE_COMPUTE_IP` | - |
|
| `--vmwarevsphere-compute-ip` | `VSPHERE_COMPUTE_IP` | - |
|
||||||
|
|
|
@ -29,27 +29,25 @@ Let's take a look at how to do this.
|
||||||
|
|
||||||
To generate your access token:
|
To generate your access token:
|
||||||
|
|
||||||
1. Go to the Digital Ocean administrator console and click on "API" in the header.
|
1. Go to the Digital Ocean administrator console and click on "API" in the header.
|
||||||
2. Click on "Generate New Token".
|
2. Click on "Generate New Token".
|
||||||
3. Give the token a clever name (e.g. "machine"), make sure the "Write" checkbox
|
3. Give the token a clever name (e.g. "machine"), make sure the "Write" checkbox
|
||||||
is checked, and click on "Generate Token".
|
is checked, and click on "Generate Token".
|
||||||
4. Grab the big long hex string that is generated (this is your token) and store
|
4. Grab the big long hex string that is generated (this is your token) and store
|
||||||
it somewhere safe.
|
it somewhere safe.
|
||||||
|
|
||||||
Now, run `docker-machine create` with the `digitalocean` driver and pass your key to
|
Now, run `docker-machine create` with the `digitalocean` driver and pass your key to
|
||||||
the `--digitalocean-access-token` flag.
|
the `--digitalocean-access-token` flag.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
```
|
$ docker-machine create \
|
||||||
$ docker-machine create \
|
--driver digitalocean \
|
||||||
--driver digitalocean \
|
--digitalocean-access-token 0ab77166d407f479c6701652cee3a46830fef88b8199722b87821621736ab2d4 \
|
||||||
--digitalocean-access-token 0ab77166d407f479c6701652cee3a46830fef88b8199722b87821621736ab2d4 \
|
staging
|
||||||
staging
|
Creating SSH key...
|
||||||
Creating SSH key...
|
Creating Digital Ocean droplet...
|
||||||
Creating Digital Ocean droplet...
|
To see how to connect Docker to this machine, run: docker-machine env staging
|
||||||
To see how to connect Docker to this machine, run: docker-machine env staging
|
|
||||||
```
|
|
||||||
|
|
||||||
For convenience, `docker-machine` will use sensible defaults for choosing
|
For convenience, `docker-machine` will use sensible defaults for choosing
|
||||||
settings such as the image that the VPS is based on, but they can also be
|
settings such as the image that the VPS is based on, but they can also be
|
||||||
|
@ -70,28 +68,22 @@ is finished, the host is ready for connection.
|
||||||
To prepare the Docker client to send commands to the remote server we have
|
To prepare the Docker client to send commands to the remote server we have
|
||||||
created, we can use the subshell method again:
|
created, we can use the subshell method again:
|
||||||
|
|
||||||
```
|
$ eval "$(docker-machine env staging)"
|
||||||
$ eval "$(docker-machine env staging)"
|
|
||||||
```
|
|
||||||
|
|
||||||
From this point, the remote host behaves much like the local host we created in
|
From this point, the remote host behaves much like the local host we created in
|
||||||
the last section. If we look at `docker-machine ls`, we'll see it is now the
|
the last section. If we look at `docker-machine ls`, we'll see it is now the
|
||||||
"active" host, indicated by an asterisk (`*`) in that column:
|
"active" host, indicated by an asterisk (`*`) in that column:
|
||||||
|
|
||||||
```
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
dev - virtualbox Running tcp://192.168.99.103:2376
|
||||||
dev - virtualbox Running tcp://192.168.99.103:2376
|
staging * digitalocean Running tcp://104.236.50.118:2376
|
||||||
staging * digitalocean Running tcp://104.236.50.118:2376
|
|
||||||
```
|
|
||||||
|
|
||||||
To remove a host and all of its containers and images, use `docker-machine rm`:
|
To remove a host and all of its containers and images, use `docker-machine rm`:
|
||||||
|
|
||||||
```
|
$ docker-machine rm dev staging
|
||||||
$ docker-machine rm dev staging
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
|
||||||
```
|
|
||||||
|
|
||||||
## Adding a host without a driver
|
## Adding a host without a driver
|
||||||
|
|
||||||
|
@ -99,14 +91,13 @@ You can add a host to Docker which only has a URL and no driver. Therefore it
|
||||||
can be used an alias for an existing host so you don’t have to type out the URL
|
can be used an alias for an existing host so you don’t have to type out the URL
|
||||||
every time you run a Docker command.
|
every time you run a Docker command.
|
||||||
|
|
||||||
```
|
$ docker-machine create --url=tcp://50.134.234.20:2376 custombox
|
||||||
$ docker-machine create --url=tcp://50.134.234.20:2376 custombox
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
custombox * none Running tcp://50.134.234.20:2376
|
||||||
custombox * none Running tcp://50.134.234.20:2376
|
|
||||||
```
|
|
||||||
|
|
||||||
## Using Docker Machine with Docker Swarm
|
## Using Docker Machine with Docker Swarm
|
||||||
|
|
||||||
Docker Machine can also provision [Swarm](https://github.com/docker/swarm)
|
Docker Machine can also provision [Swarm](https://github.com/docker/swarm)
|
||||||
clusters. This can be used with any driver and will be secured with TLS.
|
clusters. This can be used with any driver and will be secured with TLS.
|
||||||
|
|
||||||
|
@ -115,36 +106,29 @@ See the Swarm docs for details.
|
||||||
|
|
||||||
To create the token, first create a Machine. This example will use VirtualBox.
|
To create the token, first create a Machine. This example will use VirtualBox.
|
||||||
|
|
||||||
```
|
$ docker-machine create -d virtualbox local
|
||||||
$ docker-machine create -d virtualbox local
|
|
||||||
```
|
|
||||||
|
|
||||||
Load the Machine configuration into your shell:
|
Load the Machine configuration into your shell:
|
||||||
|
|
||||||
```
|
$ eval "$(docker-machine env local)"
|
||||||
$ eval "$(docker-machine env local)"
|
|
||||||
```
|
|
||||||
|
|
||||||
Then run generate the token using the Swarm Docker image:
|
Then run generate the token using the Swarm Docker image:
|
||||||
|
|
||||||
```
|
$ docker run swarm create
|
||||||
$ docker run swarm create
|
1257e0f0bbb499b5cd04b4c9bdb2dab3
|
||||||
1257e0f0bbb499b5cd04b4c9bdb2dab3
|
|
||||||
```
|
|
||||||
Once you have the token, you can create the cluster.
|
Once you have the token, you can create the cluster.
|
||||||
|
|
||||||
### Swarm master
|
### Swarm master
|
||||||
|
|
||||||
Create the Swarm master:
|
Create the Swarm master:
|
||||||
|
|
||||||
```
|
docker-machine create \
|
||||||
docker-machine create \
|
-d virtualbox \
|
||||||
-d virtualbox \
|
--swarm \
|
||||||
--swarm \
|
--swarm-master \
|
||||||
--swarm-master \
|
--swarm-discovery token://<TOKEN-FROM-ABOVE> \
|
||||||
--swarm-discovery token://<TOKEN-FROM-ABOVE> \
|
swarm-master
|
||||||
swarm-master
|
|
||||||
```
|
|
||||||
|
|
||||||
Replace `<TOKEN-FROM-ABOVE>` with your random token.
|
Replace `<TOKEN-FROM-ABOVE>` with your random token.
|
||||||
This will create the Swarm master and add itself as a Swarm node.
|
This will create the Swarm master and add itself as a Swarm node.
|
||||||
|
@ -153,37 +137,31 @@ This will create the Swarm master and add itself as a Swarm node.
|
||||||
|
|
||||||
Now, create more Swarm nodes:
|
Now, create more Swarm nodes:
|
||||||
|
|
||||||
```
|
docker-machine create \
|
||||||
docker-machine create \
|
-d virtualbox \
|
||||||
-d virtualbox \
|
--swarm \
|
||||||
--swarm \
|
--swarm-discovery token://<TOKEN-FROM-ABOVE> \
|
||||||
--swarm-discovery token://<TOKEN-FROM-ABOVE> \
|
swarm-node-00
|
||||||
swarm-node-00
|
|
||||||
```
|
|
||||||
|
|
||||||
You now have a Swarm cluster across two nodes.
|
You now have a Swarm cluster across two nodes.
|
||||||
To connect to the Swarm master, use `eval $(docker-machine env --swarm swarm-master)`
|
To connect to the Swarm master, use `eval $(docker-machine env --swarm swarm-master)`
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
```
|
$ docker-machine env --swarm swarm-master
|
||||||
$ docker-machine env --swarm swarm-master
|
export DOCKER_TLS_VERIFY=1
|
||||||
export DOCKER_TLS_VERIFY=1
|
export DOCKER_CERT_PATH="/home/ehazlett/.docker/machines/.client"
|
||||||
export DOCKER_CERT_PATH="/home/ehazlett/.docker/machines/.client"
|
export DOCKER_HOST=tcp://192.168.99.100:3376
|
||||||
export DOCKER_HOST=tcp://192.168.99.100:3376
|
|
||||||
```
|
|
||||||
|
|
||||||
You can load this into your environment using
|
You can load this into your environment using
|
||||||
`eval "$(docker-machine env --swarm swarm-master)"`.
|
`eval "$(docker-machine env --swarm swarm-master)"`.
|
||||||
|
|
||||||
Now you can use the Docker CLI to query:
|
Now you can use the Docker CLI to query:
|
||||||
|
|
||||||
```
|
$ docker info
|
||||||
$ docker info
|
Containers: 1
|
||||||
Containers: 1
|
Nodes: 1
|
||||||
Nodes: 1
|
swarm-master: 192.168.99.100:2376
|
||||||
swarm-master: 192.168.99.100:2376
|
└ Containers: 2
|
||||||
└ Containers: 2
|
└ Reserved CPUs: 0 / 4
|
||||||
└ Reserved CPUs: 0 / 4
|
└ Reserved Memory: 0 B / 999.9 MiB
|
||||||
└ Reserved Memory: 0 B / 999.9 MiB
|
|
||||||
```
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ weight=1
|
||||||
+++
|
+++
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
|
|
||||||
# Get started with Docker Machine and a local VM
|
# Get started with Docker Machine and a local VM
|
||||||
|
|
||||||
Let's take a look at using `docker-machine` for creating, using, and managing a
|
Let's take a look at using `docker-machine` for creating, using, and managing a
|
||||||
|
@ -22,10 +21,8 @@ your system.
|
||||||
If you run the `docker-machine ls` command to show all available machines, you will see
|
If you run the `docker-machine ls` command to show all available machines, you will see
|
||||||
that none have been created so far.
|
that none have been created so far.
|
||||||
|
|
||||||
```
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
|
||||||
```
|
|
||||||
|
|
||||||
To create one, we run the `docker-machine create` command, passing the string
|
To create one, we run the `docker-machine create` command, passing the string
|
||||||
`virtualbox` to the `--driver` flag. The final argument we pass is the name of
|
`virtualbox` to the `--driver` flag. The final argument we pass is the name of
|
||||||
|
@ -35,38 +32,31 @@ This command will download a lightweight Linux distribution
|
||||||
([boot2docker](https://github.com/boot2docker/boot2docker)) with the Docker
|
([boot2docker](https://github.com/boot2docker/boot2docker)) with the Docker
|
||||||
daemon installed, and will create and start a VirtualBox VM with Docker running.
|
daemon installed, and will create and start a VirtualBox VM with Docker running.
|
||||||
|
|
||||||
|
$ docker-machine create --driver virtualbox dev
|
||||||
```
|
Creating CA: /home/username/.docker/machine/certs/ca.pem
|
||||||
$ docker-machine create --driver virtualbox dev
|
Creating client certificate: /home/username/.docker/machine/certs/cert.pem
|
||||||
Creating CA: /home/username/.docker/machine/certs/ca.pem
|
Image cache does not exist, creating it at /home/username/.docker/machine/cache...
|
||||||
Creating client certificate: /home/username/.docker/machine/certs/cert.pem
|
No default boot2docker iso found locally, downloading the latest release...
|
||||||
Image cache does not exist, creating it at /home/username/.docker/machine/cache...
|
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.6.2/boot2docker.iso to /home/username/.docker/machine/cache/boot2docker.iso...
|
||||||
No default boot2docker iso found locally, downloading the latest release...
|
Creating VirtualBox VM...
|
||||||
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.6.2/boot2docker.iso to /home/username/.docker/machine/cache/boot2docker.iso...
|
Creating SSH key...
|
||||||
Creating VirtualBox VM...
|
Starting VirtualBox VM...
|
||||||
Creating SSH key...
|
Starting VM...
|
||||||
Starting VirtualBox VM...
|
To see how to connect Docker to this machine, run: docker-machine env dev
|
||||||
Starting VM...
|
|
||||||
To see how to connect Docker to this machine, run: docker-machine env dev
|
|
||||||
```
|
|
||||||
|
|
||||||
You can see the machine you have created by running the `docker-machine ls`
|
You can see the machine you have created by running the `docker-machine ls`
|
||||||
command again:
|
command again:
|
||||||
|
|
||||||
```
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL SWARM
|
||||||
NAME ACTIVE DRIVER STATE URL SWARM
|
dev - virtualbox Running tcp://192.168.99.100:2376
|
||||||
dev - virtualbox Running tcp://192.168.99.100:2376
|
|
||||||
```
|
|
||||||
|
|
||||||
Next, as noted in the output of the `docker-machine create` command, we have to
|
Next, as noted in the output of the `docker-machine create` command, we have to
|
||||||
tell Docker to talk to that machine. You can do this with the `docker-machine
|
tell Docker to talk to that machine. You can do this with the `docker-machine
|
||||||
env` command. For example,
|
env` command. For example,
|
||||||
|
|
||||||
```
|
$ eval "$(docker-machine env dev)"
|
||||||
$ eval "$(docker-machine env dev)"
|
$ docker ps
|
||||||
$ docker ps
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Note**: If you are using `fish`, or a Windows shell such as
|
> **Note**: If you are using `fish`, or a Windows shell such as
|
||||||
> Powershell/`cmd.exe` the above method will not work as described. Instead,
|
> Powershell/`cmd.exe` the above method will not work as described. Instead,
|
||||||
|
@ -79,75 +69,65 @@ restart your machine.
|
||||||
|
|
||||||
To see what will be set, run `docker-machine env dev`.
|
To see what will be set, run `docker-machine env dev`.
|
||||||
|
|
||||||
```
|
$ docker-machine env dev
|
||||||
$ docker-machine env dev
|
export DOCKER_TLS_VERIFY="1"
|
||||||
export DOCKER_TLS_VERIFY="1"
|
export DOCKER_HOST="tcp://172.16.62.130:2376"
|
||||||
export DOCKER_HOST="tcp://172.16.62.130:2376"
|
export DOCKER_CERT_PATH="/Users/<your username>/.docker/machine/machines/dev"
|
||||||
export DOCKER_CERT_PATH="/Users/<your username>/.docker/machine/machines/dev"
|
export DOCKER_MACHINE_NAME="dev"
|
||||||
export DOCKER_MACHINE_NAME="dev"
|
# Run this command to configure your shell:
|
||||||
# Run this command to configure your shell:
|
# eval "$(docker-machine env dev)"
|
||||||
# eval "$(docker-machine env dev)"
|
|
||||||
```
|
|
||||||
|
|
||||||
You can now run Docker commands on this host:
|
You can now run Docker commands on this host:
|
||||||
|
|
||||||
```
|
$ docker run busybox echo hello world
|
||||||
$ docker run busybox echo hello world
|
Unable to find image 'busybox' locally
|
||||||
Unable to find image 'busybox' locally
|
Pulling repository busybox
|
||||||
Pulling repository busybox
|
e72ac664f4f0: Download complete
|
||||||
e72ac664f4f0: Download complete
|
511136ea3c5a: Download complete
|
||||||
511136ea3c5a: Download complete
|
df7546f9f060: Download complete
|
||||||
df7546f9f060: Download complete
|
e433a6c5b276: Download complete
|
||||||
e433a6c5b276: Download complete
|
hello world
|
||||||
hello world
|
|
||||||
```
|
|
||||||
|
|
||||||
Any exposed ports are available on the Docker host’s IP address, which you can
|
Any exposed ports are available on the Docker host’s IP address, which you can
|
||||||
get using the `docker-machine ip` command:
|
get using the `docker-machine ip` command:
|
||||||
|
|
||||||
```
|
$ docker-machine ip dev
|
||||||
$ docker-machine ip dev
|
192.168.99.100
|
||||||
192.168.99.100
|
|
||||||
```
|
|
||||||
|
|
||||||
For instance, you can try running a webserver ([nginx](https://www.nginx.com/) in a
|
For instance, you can try running a webserver ([nginx](https://www.nginx.com/) in a
|
||||||
container with the following command:
|
container with the following command:
|
||||||
|
|
||||||
```
|
$ docker run -d -p 8000:80 nginx
|
||||||
$ docker run -d -p 8000:80 nginx
|
|
||||||
```
|
|
||||||
|
|
||||||
When the image is finished pulling, you can hit the server at port 8000 on the
|
When the image is finished pulling, you can hit the server at port 8000 on the
|
||||||
IP address given to you by `docker-machine ip`. For instance:
|
IP address given to you by `docker-machine ip`. For instance:
|
||||||
|
|
||||||
```
|
$ curl $(docker-machine ip dev):8000
|
||||||
$ curl $(docker-machine ip dev):8000
|
<!DOCTYPE html>
|
||||||
<!DOCTYPE html>
|
<html>
|
||||||
<html>
|
<head>
|
||||||
<head>
|
<title>Welcome to nginx!</title>
|
||||||
<title>Welcome to nginx!</title>
|
<style>
|
||||||
<style>
|
body {
|
||||||
body {
|
width: 35em;
|
||||||
width: 35em;
|
margin: 0 auto;
|
||||||
margin: 0 auto;
|
font-family: Tahoma, Verdana, Arial, sans-serif;
|
||||||
font-family: Tahoma, Verdana, Arial, sans-serif;
|
}
|
||||||
}
|
</style>
|
||||||
</style>
|
</head>
|
||||||
</head>
|
<body>
|
||||||
<body>
|
<h1>Welcome to nginx!</h1>
|
||||||
<h1>Welcome to nginx!</h1>
|
<p>If you see this page, the nginx web server is successfully installed and
|
||||||
<p>If you see this page, the nginx web server is successfully installed and
|
working. Further configuration is required.</p>
|
||||||
working. Further configuration is required.</p>
|
|
||||||
|
|
||||||
<p>For online documentation and support please refer to
|
<p>For online documentation and support please refer to
|
||||||
<a href="http://nginx.org/">nginx.org</a>.<br/>
|
<a href="http://nginx.org/">nginx.org</a>.<br/>
|
||||||
Commercial support is available at
|
Commercial support is available at
|
||||||
<a href="http://nginx.com/">nginx.com</a>.</p>
|
<a href="http://nginx.com/">nginx.com</a>.</p>
|
||||||
|
|
||||||
<p><em>Thank you for using nginx.</em></p>
|
<p><em>Thank you for using nginx.</em></p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
```
|
|
||||||
|
|
||||||
You can create and manage as many local VMs running Docker as you please- just
|
You can create and manage as many local VMs running Docker as you please- just
|
||||||
run `docker-machine create` again. All created machines will appear in the
|
run `docker-machine create` again. All created machines will appear in the
|
||||||
|
@ -157,7 +137,5 @@ If you are finished using a host for the time being, you can stop it with
|
||||||
`docker-machine stop` and later start it again with `docker-machine start`.
|
`docker-machine stop` and later start it again with `docker-machine start`.
|
||||||
Make sure to specify the machine name as an argument:
|
Make sure to specify the machine name as an argument:
|
||||||
|
|
||||||
```
|
$ docker-machine stop dev
|
||||||
$ docker-machine stop dev
|
$ docker-machine start dev
|
||||||
$ docker-machine start dev
|
|
||||||
```
|
|
||||||
|
|
|
@ -8,7 +8,6 @@ parent="smn_workw_machine"
|
||||||
+++
|
+++
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
|
|
||||||
# Docker Machine
|
# Docker Machine
|
||||||
|
|
||||||
Machine lets you create Docker hosts on your computer, on cloud providers, and
|
Machine lets you create Docker hosts on your computer, on cloud providers, and
|
||||||
|
@ -19,14 +18,14 @@ combination of a Docker host and a configured client.
|
||||||
Once you create one or more Docker hosts, Docker Machine supplies a number of
|
Once you create one or more Docker hosts, Docker Machine supplies a number of
|
||||||
commands for managing them. Using these commands you can
|
commands for managing them. Using these commands you can
|
||||||
|
|
||||||
- start, inspect, stop, and restart a host
|
- start, inspect, stop, and restart a host
|
||||||
- upgrade the Docker client and daemon
|
- upgrade the Docker client and daemon
|
||||||
- configure a Docker client to talk to your host
|
- configure a Docker client to talk to your host
|
||||||
|
|
||||||
### Looking for the installation docs?
|
### Looking for the installation docs?
|
||||||
|
|
||||||
For Windows or Mac, you can obtain Docker Machine by installing the [Docker
|
For Windows or Mac, you can obtain Docker Machine by installing the [Docker
|
||||||
Toolbox](https://www.docker.com/toolbox ). To read instructions for installing
|
Toolbox](https://www.docker.com/toolbox). To read instructions for installing
|
||||||
Machine on Linux or for installing Machine alone without Docker Toolbox, see the
|
Machine on Linux or for installing Machine alone without Docker Toolbox, see the
|
||||||
[Machine installation instructions](install-machine.md).
|
[Machine installation instructions](install-machine.md).
|
||||||
|
|
||||||
|
@ -56,19 +55,19 @@ Docker Machine is still in its infancy and under active development. If you need
|
||||||
help, would like to contribute, or simply want to talk about the project with
|
help, would like to contribute, or simply want to talk about the project with
|
||||||
like-minded individuals, we have a number of open channels for communication.
|
like-minded individuals, we have a number of open channels for communication.
|
||||||
|
|
||||||
- To report bugs or file feature requests: please use the [issue tracker on
|
- To report bugs or file feature requests: please use the [issue tracker on
|
||||||
Github](https://github.com/docker/machine/issues).
|
Github](https://github.com/docker/machine/issues).
|
||||||
- To talk about the project with people in real time: please join the
|
- To talk about the project with people in real time: please join the
|
||||||
`#docker-machine` channel on IRC.
|
`#docker-machine` channel on IRC.
|
||||||
- To contribute code or documentation changes: please [submit a pull request on
|
- To contribute code or documentation changes: please [submit a pull request on
|
||||||
Github](https://github.com/docker/machine/pulls).
|
Github](https://github.com/docker/machine/pulls).
|
||||||
|
|
||||||
For more information and resources, please visit
|
For more information and resources, please visit
|
||||||
[our help page](https://docs.docker.com/project/get-help/).
|
[our help page](https://docs.docker.com/project/get-help/).
|
||||||
|
|
||||||
## Where to go next
|
## Where to go next
|
||||||
|
|
||||||
* Install a machine on your [local system using VirtualBox](get-started.md).
|
- Install a machine on your [local system using VirtualBox](get-started.md).
|
||||||
* Install multiple machines [on your cloud provider](get-started-cloud.md).
|
- Install multiple machines [on your cloud provider](get-started-cloud.md).
|
||||||
* [Docker Machine driver reference](drivers/index.md)
|
- [Docker Machine driver reference](drivers/index.md)
|
||||||
* [Docker Machine subcommand reference](reference/index.md)
|
- [Docker Machine subcommand reference](reference/index.md)
|
||||||
|
|
|
@ -20,39 +20,39 @@ installation</a> instructions.
|
||||||
|
|
||||||
If you only want Docker Machine, you can install the Machine binaries (the
|
If you only want Docker Machine, you can install the Machine binaries (the
|
||||||
latest versions of which are located at
|
latest versions of which are located at
|
||||||
https://github.com/docker/machine/releases/ ) directly by following the
|
<https://github.com/docker/machine/releases/> ) directly by following the
|
||||||
instructions in the next section.
|
instructions in the next section.
|
||||||
|
|
||||||
## Installing Machine Directly
|
## Installing Machine Directly
|
||||||
|
|
||||||
1. Install <a href="https://docs.docker.com/installation/"
|
1. Install <a href="https://docs.docker.com/installation/"
|
||||||
target="_blank">the Docker binary</a>.
|
target="_blank">the Docker binary</a>.
|
||||||
|
|
||||||
2. Download the archive containing the Docker Machine binaries and extract them
|
2. Download the archive containing the Docker Machine binaries and extract them
|
||||||
to your PATH.
|
to your PATH.
|
||||||
|
|
||||||
Linux:
|
Linux:
|
||||||
|
|
||||||
$ curl -L https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_linux-amd64.zip >machine.zip && \
|
$ curl -L https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_linux-amd64.zip >machine.zip && \
|
||||||
unzip machine.zip && \
|
unzip machine.zip && \
|
||||||
rm machine.zip && \
|
rm machine.zip && \
|
||||||
mv docker-machine* /usr/local/bin
|
mv docker-machine* /usr/local/bin
|
||||||
|
|
||||||
OSX:
|
OSX:
|
||||||
|
|
||||||
$ curl -L https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_darwin-amd64.zip >machine.zip && \
|
$ curl -L https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_darwin-amd64.zip >machine.zip && \
|
||||||
unzip machine.zip && \
|
unzip machine.zip && \
|
||||||
rm machine.zip && \
|
rm machine.zip && \
|
||||||
mv docker-machine* /usr/local/bin
|
mv docker-machine* /usr/local/bin
|
||||||
|
|
||||||
Windows (using Git Bash):
|
Windows (using Git Bash):
|
||||||
|
|
||||||
$ curl -L https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_windows-amd64.zip >machine.zip && \
|
$ curl -L https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_windows-amd64.zip >machine.zip && \
|
||||||
unzip machine.zip && \
|
unzip machine.zip && \
|
||||||
rm machine.zip && \
|
rm machine.zip && \
|
||||||
mv docker-machine* /usr/local/bin
|
mv docker-machine* /usr/local/bin
|
||||||
|
|
||||||
3. Check the installation by displaying the Machine version:
|
3. Check the installation by displaying the Machine version:
|
||||||
|
|
||||||
$ docker-machine -v
|
$ docker-machine -v
|
||||||
machine version 0.5.0 (3e06852)
|
machine version 0.5.0 (3e06852)
|
||||||
|
@ -62,10 +62,10 @@ to your PATH.
|
||||||
The Machine repository supplies several `bash` scripts that add features such
|
The Machine repository supplies several `bash` scripts that add features such
|
||||||
as:
|
as:
|
||||||
|
|
||||||
* command completion
|
- command completion
|
||||||
* a function that displays the active machine in your shell prompt
|
- a function that displays the active machine in your shell prompt
|
||||||
* a function wrapper that adds a `docker-machine use` subcommand to switch the
|
- a function wrapper that adds a `docker-machine use` subcommand to switch the
|
||||||
active machine
|
active machine
|
||||||
|
|
||||||
To install the scripts, copy or link them into your `/etc/bash_completion.d` or
|
To install the scripts, copy or link them into your `/etc/bash_completion.d` or
|
||||||
`/usr/local/etc/bash_completion.d` file. To enable the `docker-machine` shell
|
`/usr/local/etc/bash_completion.d` file. To enable the `docker-machine` shell
|
||||||
|
@ -78,6 +78,6 @@ You can find additional documentation in the comments at the
|
||||||
|
|
||||||
## Where to go next
|
## Where to go next
|
||||||
|
|
||||||
* [Docker Machine overview](index.md)
|
- [Docker Machine overview](index.md)
|
||||||
* [Docker Machine driver reference](drivers/index.md)
|
- [Docker Machine driver reference](drivers/index.md)
|
||||||
* [Docker Machine subcommand reference](reference/index.md)
|
- [Docker Machine subcommand reference](reference/index.md)
|
||||||
|
|
|
@ -15,35 +15,34 @@ If you were using Boot2Docker previously, you have a pre-existing Docker
|
||||||
`boot2docker-vm` VM on your local system. To allow Docker Machine to manage
|
`boot2docker-vm` VM on your local system. To allow Docker Machine to manage
|
||||||
this older VM, you must migrate it.
|
this older VM, you must migrate it.
|
||||||
|
|
||||||
1. Open a terminal or the Docker CLI on your system.
|
1. Open a terminal or the Docker CLI on your system.
|
||||||
|
|
||||||
2. Type the following command.
|
2. Type the following command.
|
||||||
|
|
||||||
$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm docker-vm
|
$ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm docker-vm
|
||||||
|
|
||||||
3. Use the `docker-machine` command to interact with the migrated VM.
|
3. Use the `docker-machine` command to interact with the migrated VM.
|
||||||
|
|
||||||
## Subcommand comparison
|
## Subcommand comparison
|
||||||
|
|
||||||
The `docker-machine` subcommands are slightly different than the `boot2docker`
|
The `docker-machine` subcommands are slightly different than the `boot2docker`
|
||||||
subcommands. The table below lists the equivalent `docker-machine` subcommand
|
subcommands. The table below lists the equivalent `docker-machine` subcommand
|
||||||
and what it does:
|
and what it does:
|
||||||
|
|
||||||
| `boot2docker` | `docker-machine` | `docker-machine` description |
|
| `boot2docker` | `docker-machine` | `docker-machine` description |
|
||||||
|----------------|------------------|----------------------------------------------------------|
|
| ------------- | ---------------- | --------------------------------------------------------------------------------- |
|
||||||
| init | create | Creates a new docker host. |
|
| init | create | Creates a new docker host. |
|
||||||
| up | start | Starts a stopped machine. |
|
| up | start | Starts a stopped machine. |
|
||||||
| ssh | ssh | Runs a command or interactive ssh session on the machine.|
|
| ssh | ssh | Runs a command or interactive ssh session on the machine. |
|
||||||
| save | - | Not applicable. |
|
| save | - | Not applicable. |
|
||||||
| down | stop | Stops a running machine. |
|
| down | stop | Stops a running machine. |
|
||||||
| poweroff | stop | Stops a running machine. |
|
| poweroff | stop | Stops a running machine. |
|
||||||
| reset | restart | Restarts a running machine. |
|
| reset | restart | Restarts a running machine. |
|
||||||
| config | inspect | Prints machine configuration details. |
|
| config | inspect | Prints machine configuration details. |
|
||||||
| status | ls | Lists all machines and their status. |
|
| status | ls | Lists all machines and their status. |
|
||||||
| info | inspect | Displays a machine's details. |
|
| info | inspect | Displays a machine's details. |
|
||||||
| ip | ip | Displays the machine's ip address. |
|
| ip | ip | Displays the machine's ip address. |
|
||||||
| shellinit | env | Displays shell commands needed to configure your shell to interact with a machine |
|
| shellinit | env | Displays shell commands needed to configure your shell to interact with a machine |
|
||||||
| delete | rm | Removes a machine. |
|
| delete | rm | Removes a machine. |
|
||||||
| download | - | Not applicable. |
|
| download | - | Not applicable. |
|
||||||
| upgrade | upgrade | Upgrades a machine's Docker client to the latest stable release. |
|
| upgrade | upgrade | Upgrades a machine's Docker client to the latest stable release. |
|
||||||
|
|
||||||
|
|
|
@ -13,13 +13,11 @@ parent="smn_machine_subcmds"
|
||||||
See which machine is "active" (a machine is considered active if the
|
See which machine is "active" (a machine is considered active if the
|
||||||
`DOCKER_HOST` environment variable points to it).
|
`DOCKER_HOST` environment variable points to it).
|
||||||
|
|
||||||
```
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
dev - virtualbox Running tcp://192.168.99.103:2376
|
||||||
dev - virtualbox Running tcp://192.168.99.103:2376
|
staging * digitalocean Running tcp://104.236.50.118:2376
|
||||||
staging * digitalocean Running tcp://104.236.50.118:2376
|
$ echo $DOCKER_HOST
|
||||||
$ echo $DOCKER_HOST
|
tcp://104.236.50.118:2376
|
||||||
tcp://104.236.50.118:2376
|
$ docker-machine active
|
||||||
$ docker-machine active
|
staging
|
||||||
staging
|
|
||||||
```
|
|
||||||
|
|
|
@ -12,7 +12,5 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
Show the Docker client configuration for a machine.
|
Show the Docker client configuration for a machine.
|
||||||
|
|
||||||
```
|
$ docker-machine config dev
|
||||||
$ docker-machine config dev
|
--tlsverify --tlscacert="/Users/ehazlett/.docker/machines/dev/ca.pem" --tlscert="/Users/ehazlett/.docker/machines/dev/cert.pem" --tlskey="/Users/ehazlett/.docker/machines/dev/key.pem" -H tcp://192.168.99.103:2376
|
||||||
--tlsverify --tlscacert="/Users/ehazlett/.docker/machines/dev/ca.pem" --tlscert="/Users/ehazlett/.docker/machines/dev/cert.pem" --tlskey="/Users/ehazlett/.docker/machines/dev/key.pem" -H tcp://192.168.99.103:2376
|
|
||||||
```
|
|
||||||
|
|
|
@ -15,19 +15,17 @@ Create a machine. Requires the `--driver` flag to indicate which provider
|
||||||
(VirtualBox, DigitalOcean, AWS, etc.) the machine should be created on, and an
|
(VirtualBox, DigitalOcean, AWS, etc.) the machine should be created on, and an
|
||||||
argument to indicate the name of the created machine.
|
argument to indicate the name of the created machine.
|
||||||
|
|
||||||
```
|
$ docker-machine create --driver virtualbox dev
|
||||||
$ docker-machine create --driver virtualbox dev
|
Creating CA: /home/username/.docker/machine/certs/ca.pem
|
||||||
Creating CA: /home/username/.docker/machine/certs/ca.pem
|
Creating client certificate: /home/username/.docker/machine/certs/cert.pem
|
||||||
Creating client certificate: /home/username/.docker/machine/certs/cert.pem
|
Image cache does not exist, creating it at /home/username/.docker/machine/cache...
|
||||||
Image cache does not exist, creating it at /home/username/.docker/machine/cache...
|
No default boot2docker iso found locally, downloading the latest release...
|
||||||
No default boot2docker iso found locally, downloading the latest release...
|
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.6.2/boot2docker.iso to /home/username/.docker/machine/cache/boot2docker.iso...
|
||||||
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.6.2/boot2docker.iso to /home/username/.docker/machine/cache/boot2docker.iso...
|
Creating VirtualBox VM...
|
||||||
Creating VirtualBox VM...
|
Creating SSH key...
|
||||||
Creating SSH key...
|
Starting VirtualBox VM...
|
||||||
Starting VirtualBox VM...
|
Starting VM...
|
||||||
Starting VM...
|
To see how to connect Docker to this machine, run: docker-machine env dev
|
||||||
To see how to connect Docker to this machine, run: docker-machine env dev
|
|
||||||
```
|
|
||||||
|
|
||||||
## Accessing driver-specific flags in the help text
|
## Accessing driver-specific flags in the help text
|
||||||
|
|
||||||
|
@ -36,34 +34,32 @@ drivers. These largely control aspects of Machine's provisoning process
|
||||||
(including the creation of Docker Swarm containers) that the user may wish to
|
(including the creation of Docker Swarm containers) that the user may wish to
|
||||||
customize.
|
customize.
|
||||||
|
|
||||||
```
|
$ docker-machine create
|
||||||
$ docker-machine create
|
Docker Machine Version: 0.5.0 (45e3688)
|
||||||
Docker Machine Version: 0.5.0 (45e3688)
|
Usage: docker-machine create [OPTIONS] [arg...]
|
||||||
Usage: docker-machine create [OPTIONS] [arg...]
|
|
||||||
|
|
||||||
Create a machine.
|
Create a machine.
|
||||||
|
|
||||||
Run 'docker-machine create --driver name' to include the create flags for that driver in the help text.
|
Run 'docker-machine create --driver name' to include the create flags for that driver in the help text.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
--driver, -d "none" Driver to create machine with.
|
--driver, -d "none" Driver to create machine with.
|
||||||
--engine-install-url "https://get.docker.com" Custom URL to use for engine installation [$MACHINE_DOCKER_INSTALL_URL]
|
--engine-install-url "https://get.docker.com" Custom URL to use for engine installation [$MACHINE_DOCKER_INSTALL_URL]
|
||||||
--engine-opt [--engine-opt option --engine-opt option] Specify arbitrary flags to include with the created engine in the form flag=value
|
--engine-opt [--engine-opt option --engine-opt option] Specify arbitrary flags to include with the created engine in the form flag=value
|
||||||
--engine-insecure-registry [--engine-insecure-registry option --engine-insecure-registry option] Specify insecure registries to allow with the created engine
|
--engine-insecure-registry [--engine-insecure-registry option --engine-insecure-registry option] Specify insecure registries to allow with the created engine
|
||||||
--engine-registry-mirror [--engine-registry-mirror option --engine-registry-mirror option] Specify registry mirrors to use
|
--engine-registry-mirror [--engine-registry-mirror option --engine-registry-mirror option] Specify registry mirrors to use
|
||||||
--engine-label [--engine-label option --engine-label option] Specify labels for the created engine
|
--engine-label [--engine-label option --engine-label option] Specify labels for the created engine
|
||||||
--engine-storage-driver Specify a storage driver to use with the engine
|
--engine-storage-driver Specify a storage driver to use with the engine
|
||||||
--engine-env [--engine-env option --engine-env option] Specify environment variables to set in the engine
|
--engine-env [--engine-env option --engine-env option] Specify environment variables to set in the engine
|
||||||
--swarm Configure Machine with Swarm
|
--swarm Configure Machine with Swarm
|
||||||
--swarm-image "swarm:latest" Specify Docker image to use for Swarm [$MACHINE_SWARM_IMAGE]
|
--swarm-image "swarm:latest" Specify Docker image to use for Swarm [$MACHINE_SWARM_IMAGE]
|
||||||
--swarm-master Configure Machine to be a Swarm master
|
--swarm-master Configure Machine to be a Swarm master
|
||||||
--swarm-discovery Discovery service to use with Swarm
|
--swarm-discovery Discovery service to use with Swarm
|
||||||
--swarm-strategy "spread" Define a default scheduling strategy for Swarm
|
--swarm-strategy "spread" Define a default scheduling strategy for Swarm
|
||||||
--swarm-opt [--swarm-opt option --swarm-opt option] Define arbitrary flags for swarm
|
--swarm-opt [--swarm-opt option --swarm-opt option] Define arbitrary flags for swarm
|
||||||
--swarm-host "tcp://0.0.0.0:3376" ip/socket to listen on for Swarm master
|
--swarm-host "tcp://0.0.0.0:3376" ip/socket to listen on for Swarm master
|
||||||
--swarm-addr addr to advertise for Swarm (default: detect and use the machine IP)
|
--swarm-addr addr to advertise for Swarm (default: detect and use the machine IP)
|
||||||
```
|
|
||||||
|
|
||||||
Additionally, drivers can specify flags that Machine can accept as part of their
|
Additionally, drivers can specify flags that Machine can accept as part of their
|
||||||
plugin code. These allow users to customize the provider-specific parameters of
|
plugin code. These allow users to customize the provider-specific parameters of
|
||||||
|
@ -73,42 +69,40 @@ geographical region (`--amazonec2-region us-west-1`), and so on.
|
||||||
To see the provider-specific flags, simply pass a value for `--driver` when
|
To see the provider-specific flags, simply pass a value for `--driver` when
|
||||||
invoking the `create` help text.
|
invoking the `create` help text.
|
||||||
|
|
||||||
```
|
$ docker-machine create --driver virtualbox --help
|
||||||
$ docker-machine create --driver virtualbox --help
|
Usage: docker-machine create [OPTIONS] [arg...]
|
||||||
Usage: docker-machine create [OPTIONS] [arg...]
|
|
||||||
|
|
||||||
Create a machine.
|
Create a machine.
|
||||||
|
|
||||||
Run 'docker-machine create --driver name' to include the create flags for that driver in the help text.
|
Run 'docker-machine create --driver name' to include the create flags for that driver in the help text.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
--driver, -d "none" Driver to create machine with.
|
--driver, -d "none" Driver to create machine with.
|
||||||
--engine-env [--engine-env option --engine-env option] Specify environment variables to set in the engine
|
--engine-env [--engine-env option --engine-env option] Specify environment variables to set in the engine
|
||||||
--engine-insecure-registry [--engine-insecure-registry option --engine-insecure-registry option] Specify insecure registries to allow with the created engine
|
--engine-insecure-registry [--engine-insecure-registry option --engine-insecure-registry option] Specify insecure registries to allow with the created engine
|
||||||
--engine-install-url "https://get.docker.com" Custom URL to use for engine installation [$MACHINE_DOCKER_INSTALL_URL]
|
--engine-install-url "https://get.docker.com" Custom URL to use for engine installation [$MACHINE_DOCKER_INSTALL_URL]
|
||||||
--engine-label [--engine-label option --engine-label option] Specify labels for the created engine
|
--engine-label [--engine-label option --engine-label option] Specify labels for the created engine
|
||||||
--engine-opt [--engine-opt option --engine-opt option] Specify arbitrary flags to include with the created engine in the form flag=value
|
--engine-opt [--engine-opt option --engine-opt option] Specify arbitrary flags to include with the created engine in the form flag=value
|
||||||
--engine-registry-mirror [--engine-registry-mirror option --engine-registry-mirror option] Specify registry mirrors to use
|
--engine-registry-mirror [--engine-registry-mirror option --engine-registry-mirror option] Specify registry mirrors to use
|
||||||
--engine-storage-driver Specify a storage driver to use with the engine
|
--engine-storage-driver Specify a storage driver to use with the engine
|
||||||
--swarm Configure Machine with Swarm
|
--swarm Configure Machine with Swarm
|
||||||
--swarm-addr addr to advertise for Swarm (default: detect and use the machine IP)
|
--swarm-addr addr to advertise for Swarm (default: detect and use the machine IP)
|
||||||
--swarm-discovery Discovery service to use with Swarm
|
--swarm-discovery Discovery service to use with Swarm
|
||||||
--swarm-host "tcp://0.0.0.0:3376" ip/socket to listen on for Swarm master
|
--swarm-host "tcp://0.0.0.0:3376" ip/socket to listen on for Swarm master
|
||||||
--swarm-image "swarm:latest" Specify Docker image to use for Swarm [$MACHINE_SWARM_IMAGE]
|
--swarm-image "swarm:latest" Specify Docker image to use for Swarm [$MACHINE_SWARM_IMAGE]
|
||||||
--swarm-master Configure Machine to be a Swarm master
|
--swarm-master Configure Machine to be a Swarm master
|
||||||
--swarm-opt [--swarm-opt option --swarm-opt option] Define arbitrary flags for swarm
|
--swarm-opt [--swarm-opt option --swarm-opt option] Define arbitrary flags for swarm
|
||||||
--swarm-strategy "spread" Define a default scheduling strategy for Swarm
|
--swarm-strategy "spread" Define a default scheduling strategy for Swarm
|
||||||
--virtualbox-boot2docker-url The URL of the boot2docker image. Defaults to the latest available version [$VIRTUALBOX_BOOT2DOCKER_URL]
|
--virtualbox-boot2docker-url The URL of the boot2docker image. Defaults to the latest available version [$VIRTUALBOX_BOOT2DOCKER_URL]
|
||||||
--virtualbox-cpu-count "1" number of CPUs for the machine (-1 to use the number of CPUs available) [$VIRTUALBOX_CPU_COUNT]
|
--virtualbox-cpu-count "1" number of CPUs for the machine (-1 to use the number of CPUs available) [$VIRTUALBOX_CPU_COUNT]
|
||||||
--virtualbox-disk-size "20000" Size of disk for host in MB [$VIRTUALBOX_DISK_SIZE]
|
--virtualbox-disk-size "20000" Size of disk for host in MB [$VIRTUALBOX_DISK_SIZE]
|
||||||
--virtualbox-hostonly-cidr "192.168.99.1/24" Specify the Host Only CIDR [$VIRTUALBOX_HOSTONLY_CIDR]
|
--virtualbox-hostonly-cidr "192.168.99.1/24" Specify the Host Only CIDR [$VIRTUALBOX_HOSTONLY_CIDR]
|
||||||
--virtualbox-hostonly-nicpromisc "deny" Specify the Host Only Network Adapter Promiscuous Mode [$VIRTUALBOX_HOSTONLY_NIC_PROMISC]
|
--virtualbox-hostonly-nicpromisc "deny" Specify the Host Only Network Adapter Promiscuous Mode [$VIRTUALBOX_HOSTONLY_NIC_PROMISC]
|
||||||
--virtualbox-hostonly-nictype "82540EM" Specify the Host Only Network Adapter Type [$VIRTUALBOX_HOSTONLY_NIC_TYPE]
|
--virtualbox-hostonly-nictype "82540EM" Specify the Host Only Network Adapter Type [$VIRTUALBOX_HOSTONLY_NIC_TYPE]
|
||||||
--virtualbox-import-boot2docker-vm The name of a Boot2Docker VM to import
|
--virtualbox-import-boot2docker-vm The name of a Boot2Docker VM to import
|
||||||
--virtualbox-memory "1024" Size of memory for host in MB [$VIRTUALBOX_MEMORY_SIZE]
|
--virtualbox-memory "1024" Size of memory for host in MB [$VIRTUALBOX_MEMORY_SIZE]
|
||||||
--virtualbox-no-share Disable the mount of your home directory
|
--virtualbox-no-share Disable the mount of your home directory
|
||||||
```
|
|
||||||
|
|
||||||
You may notice that some flags specify environment variables that they are
|
You may notice that some flags specify environment variables that they are
|
||||||
associated with as well (located to the far left hand side of the row). If
|
associated with as well (located to the far left hand side of the row). If
|
||||||
|
@ -139,14 +133,12 @@ filesystem has been created, and so on.
|
||||||
|
|
||||||
The following is an example usage:
|
The following is an example usage:
|
||||||
|
|
||||||
```
|
$ docker-machine create -d virtualbox \
|
||||||
$ docker-machine create -d virtualbox \
|
--engine-label foo=bar \
|
||||||
--engine-label foo=bar \
|
--engine-label spam=eggs \
|
||||||
--engine-label spam=eggs \
|
--engine-storage-driver overlay \
|
||||||
--engine-storage-driver overlay \
|
--engine-insecure-registry registry.myco.com \
|
||||||
--engine-insecure-registry registry.myco.com \
|
foobarmachine
|
||||||
foobarmachine
|
|
||||||
```
|
|
||||||
|
|
||||||
This will create a virtual machine running locally in Virtualbox which uses the
|
This will create a virtual machine running locally in Virtualbox which uses the
|
||||||
`overlay` storage backend, has the key-value pairs `foo=bar` and `spam=eggs` as
|
`overlay` storage backend, has the key-value pairs `foo=bar` and `spam=eggs` as
|
||||||
|
@ -154,27 +146,25 @@ labels on the engine, and allows pushing / pulling from the insecure registry
|
||||||
located at `registry.myco.com`. You can verify much of this by inspecting the
|
located at `registry.myco.com`. You can verify much of this by inspecting the
|
||||||
output of `docker info`:
|
output of `docker info`:
|
||||||
|
|
||||||
```
|
$ eval $(docker-machine env foobarmachine)
|
||||||
$ eval $(docker-machine env foobarmachine)
|
$ docker info
|
||||||
$ docker info
|
Containers: 0
|
||||||
Containers: 0
|
Images: 0
|
||||||
Images: 0
|
Storage Driver: overlay
|
||||||
Storage Driver: overlay
|
...
|
||||||
...
|
Name: foobarmachine
|
||||||
Name: foobarmachine
|
...
|
||||||
...
|
Labels:
|
||||||
Labels:
|
foo=bar
|
||||||
foo=bar
|
spam=eggs
|
||||||
spam=eggs
|
provider=virtualbox
|
||||||
provider=virtualbox
|
|
||||||
```
|
|
||||||
|
|
||||||
The supported flags are as follows:
|
The supported flags are as follows:
|
||||||
|
|
||||||
- `--engine-insecure-registry`: Specify [insecure registries](https://docs.docker.com/reference/commandline/cli/#insecure-registries) to allow with the created engine
|
- `--engine-insecure-registry`: Specify [insecure registries](https://docs.docker.com/reference/commandline/cli/#insecure-registries) to allow with the created engine
|
||||||
- `--engine-registry-mirror`: Specify [registry mirrors](https://github.com/docker/distribution/blob/master/docs/mirror.md) to use
|
- `--engine-registry-mirror`: Specify [registry mirrors](https://github.com/docker/distribution/blob/master/docs/mirror.md) to use
|
||||||
- `--engine-label`: Specify [labels](https://docs.docker.com/userguide/labels-custom-metadata/#daemon-labels) for the created engine
|
- `--engine-label`: Specify [labels](https://docs.docker.com/userguide/labels-custom-metadata/#daemon-labels) for the created engine
|
||||||
- `--engine-storage-driver`: Specify a [storage driver](https://docs.docker.com/reference/commandline/cli/#daemon-storage-driver-option) to use with the engine
|
- `--engine-storage-driver`: Specify a [storage driver](https://docs.docker.com/reference/commandline/cli/#daemon-storage-driver-option) to use with the engine
|
||||||
|
|
||||||
If the engine supports specifying the flag multiple times (such as with
|
If the engine supports specifying the flag multiple times (such as with
|
||||||
`--label`), then so does Docker Machine.
|
`--label`), then so does Docker Machine.
|
||||||
|
@ -187,23 +177,19 @@ for all containers, and always use the `syslog` [log
|
||||||
driver](https://docs.docker.com/reference/run/#logging-drivers-log-driver) you
|
driver](https://docs.docker.com/reference/run/#logging-drivers-log-driver) you
|
||||||
could run the following create command:
|
could run the following create command:
|
||||||
|
|
||||||
```
|
$ docker-machine create -d virtualbox \
|
||||||
$ docker-machine create -d virtualbox \
|
--engine-opt dns=8.8.8.8 \
|
||||||
--engine-opt dns=8.8.8.8 \
|
--engine-opt log-driver=syslog \
|
||||||
--engine-opt log-driver=syslog \
|
gdns
|
||||||
gdns
|
|
||||||
```
|
|
||||||
|
|
||||||
Additionally, Docker Machine supports a flag, `--engine-env`, which can be used to
|
Additionally, Docker Machine supports a flag, `--engine-env`, which can be used to
|
||||||
specify arbitrary environment variables to be set within the engine with the syntax `--engine-env name=value`. For example, to specify that the engine should use `example.com` as the proxy server, you could run the following create command:
|
specify arbitrary environment variables to be set within the engine with the syntax `--engine-env name=value`. For example, to specify that the engine should use `example.com` as the proxy server, you could run the following create command:
|
||||||
|
|
||||||
```
|
$ docker-machine create -d virtualbox \
|
||||||
$ docker-machine create -d virtualbox \
|
--engine-env HTTP_PROXY=http://example.com:8080 \
|
||||||
--engine-env HTTP_PROXY=http://example.com:8080 \
|
--engine-env HTTPS_PROXY=https://example.com:8080 \
|
||||||
--engine-env HTTPS_PROXY=https://example.com:8080 \
|
--engine-env NO_PROXY=example2.com \
|
||||||
--engine-env NO_PROXY=example2.com \
|
proxbox
|
||||||
proxbox
|
|
||||||
```
|
|
||||||
|
|
||||||
## Specifying Docker Swarm options for the created machine
|
## Specifying Docker Swarm options for the created machine
|
||||||
|
|
||||||
|
@ -225,15 +211,13 @@ you won't have to worry about it.
|
||||||
|
|
||||||
Example create:
|
Example create:
|
||||||
|
|
||||||
```
|
$ docker-machine create -d virtualbox \
|
||||||
$ docker-machine create -d virtualbox \
|
--swarm \
|
||||||
--swarm \
|
--swarm-master \
|
||||||
--swarm-master \
|
--swarm-discovery token://<token> \
|
||||||
--swarm-discovery token://<token> \
|
--swarm-strategy binpack \
|
||||||
--swarm-strategy binpack \
|
--swarm-opt heartbeat=5 \
|
||||||
--swarm-opt heartbeat=5 \
|
upbeat
|
||||||
upbeat
|
|
||||||
```
|
|
||||||
|
|
||||||
This will set the swarm scheduling strategy to "binpack" (pack in containers as
|
This will set the swarm scheduling strategy to "binpack" (pack in containers as
|
||||||
tightly as possible per host instead of spreading them out), and the "heartbeat"
|
tightly as possible per host instead of spreading them out), and the "heartbeat"
|
||||||
|
|
|
@ -17,19 +17,17 @@ a particular machine.
|
||||||
run in a subshell. Running `docker-machine env -u` will print `unset` commands
|
run in a subshell. Running `docker-machine env -u` will print `unset` commands
|
||||||
which reverse this effect.
|
which reverse this effect.
|
||||||
|
|
||||||
```
|
$ env | grep DOCKER
|
||||||
$ env | grep DOCKER
|
$ eval "$(docker-machine env dev)"
|
||||||
$ eval "$(docker-machine env dev)"
|
$ env | grep DOCKER
|
||||||
$ env | grep DOCKER
|
DOCKER_HOST=tcp://192.168.99.101:2376
|
||||||
DOCKER_HOST=tcp://192.168.99.101:2376
|
DOCKER_CERT_PATH=/Users/nathanleclaire/.docker/machines/.client
|
||||||
DOCKER_CERT_PATH=/Users/nathanleclaire/.docker/machines/.client
|
DOCKER_TLS_VERIFY=1
|
||||||
DOCKER_TLS_VERIFY=1
|
DOCKER_MACHINE_NAME=dev
|
||||||
DOCKER_MACHINE_NAME=dev
|
$ # If you run a docker command, now it will run against that host.
|
||||||
$ # If you run a docker command, now it will run against that host.
|
$ eval "$(docker-machine env -u)"
|
||||||
$ eval "$(docker-machine env -u)"
|
$ env | grep DOCKER
|
||||||
$ env | grep DOCKER
|
$ # The environment variables have been unset.
|
||||||
$ # The environment variables have been unset.
|
|
||||||
```
|
|
||||||
|
|
||||||
The output described above is intended for the shells `bash` and `zsh` (if
|
The output described above is intended for the shells `bash` and `zsh` (if
|
||||||
you're not sure which shell you're using, there's a very good possibility that
|
you're not sure which shell you're using, there's a very good possibility that
|
||||||
|
@ -40,14 +38,12 @@ If you are using `fish` and the `SHELL` environment variable is correctly set to
|
||||||
the path where `fish` is located, `docker-machine env name` will print out the
|
the path where `fish` is located, `docker-machine env name` will print out the
|
||||||
values in the format which `fish` expects:
|
values in the format which `fish` expects:
|
||||||
|
|
||||||
```
|
set -x DOCKER_TLS_VERIFY 1;
|
||||||
set -x DOCKER_TLS_VERIFY 1;
|
set -x DOCKER_CERT_PATH "/Users/nathanleclaire/.docker/machine/machines/overlay";
|
||||||
set -x DOCKER_CERT_PATH "/Users/nathanleclaire/.docker/machine/machines/overlay";
|
set -x DOCKER_HOST tcp://192.168.99.102:2376;
|
||||||
set -x DOCKER_HOST tcp://192.168.99.102:2376;
|
set -x DOCKER_MACHINE_NAME overlay
|
||||||
set -x DOCKER_MACHINE_NAME overlay
|
# Run this command to configure your shell:
|
||||||
# Run this command to configure your shell:
|
# eval "$(docker-machine env overlay)"
|
||||||
# eval "$(docker-machine env overlay)"
|
|
||||||
```
|
|
||||||
|
|
||||||
If you are on Windows and using Powershell or `cmd.exe`, `docker-machine env`
|
If you are on Windows and using Powershell or `cmd.exe`, `docker-machine env`
|
||||||
cannot detect your shell automatically, but it does have support for these
|
cannot detect your shell automatically, but it does have support for these
|
||||||
|
@ -56,26 +52,22 @@ options for using the `--shell` flag for `docker-machine env`.
|
||||||
|
|
||||||
For Powershell:
|
For Powershell:
|
||||||
|
|
||||||
```
|
$ docker-machine.exe env --shell powershell dev
|
||||||
$ docker-machine.exe env --shell powershell dev
|
$Env:DOCKER_TLS_VERIFY = "1"
|
||||||
$Env:DOCKER_TLS_VERIFY = "1"
|
$Env:DOCKER_HOST = "tcp://192.168.99.101:2376"
|
||||||
$Env:DOCKER_HOST = "tcp://192.168.99.101:2376"
|
$Env:DOCKER_CERT_PATH = "C:\Users\captain\.docker\machine\machines\dev"
|
||||||
$Env:DOCKER_CERT_PATH = "C:\Users\captain\.docker\machine\machines\dev"
|
$Env:DOCKER_MACHINE_NAME = "dev"
|
||||||
$Env:DOCKER_MACHINE_NAME = "dev"
|
# Run this command to configure your shell:
|
||||||
# Run this command to configure your shell:
|
# docker-machine.exe env --shell=powershell dev | Invoke-Expression
|
||||||
# docker-machine.exe env --shell=powershell dev | Invoke-Expression
|
|
||||||
```
|
|
||||||
|
|
||||||
For `cmd.exe`:
|
For `cmd.exe`:
|
||||||
|
|
||||||
```
|
$ docker-machine.exe env --shell cmd dev
|
||||||
$ docker-machine.exe env --shell cmd dev
|
set DOCKER_TLS_VERIFY=1
|
||||||
set DOCKER_TLS_VERIFY=1
|
set DOCKER_HOST=tcp://192.168.99.101:2376
|
||||||
set DOCKER_HOST=tcp://192.168.99.101:2376
|
set DOCKER_CERT_PATH=C:\Users\captain\.docker\machine\machines\dev
|
||||||
set DOCKER_CERT_PATH=C:\Users\captain\.docker\machine\machines\dev
|
set DOCKER_MACHINE_NAME=dev
|
||||||
set DOCKER_MACHINE_NAME=dev
|
# Run this command to configure your shell: copy and paste the above values into your command prompt
|
||||||
# Run this command to configure your shell: copy and paste the above values into your command prompt
|
|
||||||
```
|
|
||||||
|
|
||||||
## Excluding the created machine from proxies
|
## Excluding the created machine from proxies
|
||||||
|
|
||||||
|
@ -87,16 +79,14 @@ This is useful when using `docker-machine` with a local VM provider (e.g.
|
||||||
`virtualbox` or `vmwarefusion`) in network environments where a HTTP proxy is
|
`virtualbox` or `vmwarefusion`) in network environments where a HTTP proxy is
|
||||||
required for internet access.
|
required for internet access.
|
||||||
|
|
||||||
```
|
$ docker-machine env --no-proxy default
|
||||||
$ docker-machine env --no-proxy default
|
export DOCKER_TLS_VERIFY="1"
|
||||||
export DOCKER_TLS_VERIFY="1"
|
export DOCKER_HOST="tcp://192.168.99.104:2376"
|
||||||
export DOCKER_HOST="tcp://192.168.99.104:2376"
|
export DOCKER_CERT_PATH="/Users/databus23/.docker/machine/certs"
|
||||||
export DOCKER_CERT_PATH="/Users/databus23/.docker/machine/certs"
|
export DOCKER_MACHINE_NAME="default"
|
||||||
export DOCKER_MACHINE_NAME="default"
|
export NO_PROXY="192.168.99.104"
|
||||||
export NO_PROXY="192.168.99.104"
|
# Run this command to configure your shell:
|
||||||
# Run this command to configure your shell:
|
# eval "$(docker-machine env default)"
|
||||||
# eval "$(docker-machine env default)"
|
|
||||||
```
|
|
||||||
|
|
||||||
You may also want to visit the [documentation on setting `HTTP_PROXY` for the
|
You may also want to visit the [documentation on setting `HTTP_PROXY` for the
|
||||||
created daemon using the `--engine-env` flag for `docker-machine
|
created daemon using the `--engine-env` flag for `docker-machine
|
||||||
|
|
|
@ -10,7 +10,7 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
# help
|
# help
|
||||||
|
|
||||||
Usage: docker-machine help *subcommand*
|
Usage: docker-machine help _subcommand_
|
||||||
|
|
||||||
Show help text, for example:
|
Show help text, for example:
|
||||||
|
|
||||||
|
|
|
@ -9,25 +9,24 @@ parent="smn_machine_ref"
|
||||||
+++
|
+++
|
||||||
<![end-metadata]-->
|
<![end-metadata]-->
|
||||||
|
|
||||||
|
|
||||||
# Supported Docker Machine subcommands
|
# Supported Docker Machine subcommands
|
||||||
|
|
||||||
* [active](active.md)
|
- [active](active.md)
|
||||||
* [config](config.md)
|
- [config](config.md)
|
||||||
* [create](create.md)
|
- [create](create.md)
|
||||||
* [env](env.md)
|
- [env](env.md)
|
||||||
* [help](help.md)
|
- [help](help.md)
|
||||||
* [inspect](inspect.md)
|
- [inspect](inspect.md)
|
||||||
* [ip](ip.md)
|
- [ip](ip.md)
|
||||||
* [kill](kill.md)
|
- [kill](kill.md)
|
||||||
* [ls](ls.md)
|
- [ls](ls.md)
|
||||||
* [regenerate-certs](regenerate-certs.md)
|
- [regenerate-certs](regenerate-certs.md)
|
||||||
* [restart](restart.md)
|
- [restart](restart.md)
|
||||||
* [rm](rm.md)
|
- [rm](rm.md)
|
||||||
* [scp](scp.md)
|
- [scp](scp.md)
|
||||||
* [ssh](ssh.md)
|
- [ssh](ssh.md)
|
||||||
* [start](start.md)
|
- [start](start.md)
|
||||||
* [status](status.md)
|
- [status](status.md)
|
||||||
* [stop](stop.md)
|
- [stop](stop.md)
|
||||||
* [upgrade](upgrade.md)
|
- [upgrade](upgrade.md)
|
||||||
* [url](url.md)
|
- [url](url.md)
|
||||||
|
|
|
@ -11,17 +11,15 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
# inspect
|
# inspect
|
||||||
|
|
||||||
```
|
Usage: docker-machine inspect [OPTIONS] [arg...]
|
||||||
Usage: docker-machine inspect [OPTIONS] [arg...]
|
|
||||||
|
|
||||||
Inspect information about a machine
|
Inspect information about a machine
|
||||||
|
|
||||||
Description:
|
Description:
|
||||||
Argument is a machine name.
|
Argument is a machine name.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
--format, -f Format the output using the given go template.
|
--format, -f Format the output using the given go template.
|
||||||
```
|
|
||||||
|
|
||||||
By default, this will render information about a machine as JSON. If a format is
|
By default, this will render information about a machine as JSON. If a format is
|
||||||
specified, the given template will be executed for each result.
|
specified, the given template will be executed for each result.
|
||||||
|
@ -38,62 +36,54 @@ In addition to the `text/template` syntax, there are some additional functions,
|
||||||
|
|
||||||
This is the default usage of `inspect`.
|
This is the default usage of `inspect`.
|
||||||
|
|
||||||
```
|
$ docker-machine inspect dev
|
||||||
$ docker-machine inspect dev
|
{
|
||||||
{
|
"DriverName": "virtualbox",
|
||||||
"DriverName": "virtualbox",
|
"Driver": {
|
||||||
"Driver": {
|
"MachineName": "docker-host-128be8d287b2028316c0ad5714b90bcfc11f998056f2f790f7c1f43f3d1e6eda",
|
||||||
"MachineName": "docker-host-128be8d287b2028316c0ad5714b90bcfc11f998056f2f790f7c1f43f3d1e6eda",
|
"SSHPort": 55834,
|
||||||
"SSHPort": 55834,
|
"Memory": 1024,
|
||||||
"Memory": 1024,
|
"DiskSize": 20000,
|
||||||
"DiskSize": 20000,
|
"Boot2DockerURL": "",
|
||||||
"Boot2DockerURL": "",
|
"IPAddress": "192.168.5.99"
|
||||||
"IPAddress": "192.168.5.99"
|
},
|
||||||
},
|
...
|
||||||
...
|
}
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Get a machine's IP address:**
|
**Get a machine's IP address:**
|
||||||
|
|
||||||
For the most part, you can pick out any field from the JSON in a fairly
|
For the most part, you can pick out any field from the JSON in a fairly
|
||||||
straightforward manner.
|
straightforward manner.
|
||||||
|
|
||||||
```
|
$ docker-machine inspect --format='{{.Driver.IPAddress}}' dev
|
||||||
$ docker-machine inspect --format='{{.Driver.IPAddress}}' dev
|
192.168.5.99
|
||||||
192.168.5.99
|
|
||||||
```
|
|
||||||
|
|
||||||
**Formatting details:**
|
**Formatting details:**
|
||||||
|
|
||||||
If you want a subset of information formatted as JSON, you can use the `json`
|
If you want a subset of information formatted as JSON, you can use the `json`
|
||||||
function in the template.
|
function in the template.
|
||||||
|
|
||||||
```
|
$ docker-machine inspect --format='{{json .Driver}}' dev-fusion
|
||||||
$ docker-machine inspect --format='{{json .Driver}}' dev-fusion
|
{"Boot2DockerURL":"","CPUS":8,"CPUs":8,"CaCertPath":"/Users/hairyhenderson/.docker/machine/certs/ca.pem","DiskSize":20000,"IPAddress":"172.16.62.129","ISO":"/Users/hairyhenderson/.docker/machine/machines/dev-fusion/boot2docker-1.5.0-GH747.iso","MachineName":"dev-fusion","Memory":1024,"PrivateKeyPath":"/Users/hairyhenderson/.docker/machine/certs/ca-key.pem","SSHPort":22,"SSHUser":"docker","SwarmDiscovery":"","SwarmHost":"tcp://0.0.0.0:3376","SwarmMaster":false}
|
||||||
{"Boot2DockerURL":"","CPUS":8,"CPUs":8,"CaCertPath":"/Users/hairyhenderson/.docker/machine/certs/ca.pem","DiskSize":20000,"IPAddress":"172.16.62.129","ISO":"/Users/hairyhenderson/.docker/machine/machines/dev-fusion/boot2docker-1.5.0-GH747.iso","MachineName":"dev-fusion","Memory":1024,"PrivateKeyPath":"/Users/hairyhenderson/.docker/machine/certs/ca-key.pem","SSHPort":22,"SSHUser":"docker","SwarmDiscovery":"","SwarmHost":"tcp://0.0.0.0:3376","SwarmMaster":false}
|
|
||||||
```
|
|
||||||
|
|
||||||
While this is usable, it's not very human-readable. For this reason, there is
|
While this is usable, it's not very human-readable. For this reason, there is
|
||||||
`prettyjson`:
|
`prettyjson`:
|
||||||
|
|
||||||
```
|
$ docker-machine inspect --format='{{prettyjson .Driver}}' dev-fusion
|
||||||
$ docker-machine inspect --format='{{prettyjson .Driver}}' dev-fusion
|
{
|
||||||
{
|
"Boot2DockerURL": "",
|
||||||
"Boot2DockerURL": "",
|
"CPUS": 8,
|
||||||
"CPUS": 8,
|
"CPUs": 8,
|
||||||
"CPUs": 8,
|
"CaCertPath": "/Users/hairyhenderson/.docker/machine/certs/ca.pem",
|
||||||
"CaCertPath": "/Users/hairyhenderson/.docker/machine/certs/ca.pem",
|
"DiskSize": 20000,
|
||||||
"DiskSize": 20000,
|
"IPAddress": "172.16.62.129",
|
||||||
"IPAddress": "172.16.62.129",
|
"ISO": "/Users/hairyhenderson/.docker/machine/machines/dev-fusion/boot2docker-1.5.0-GH747.iso",
|
||||||
"ISO": "/Users/hairyhenderson/.docker/machine/machines/dev-fusion/boot2docker-1.5.0-GH747.iso",
|
"MachineName": "dev-fusion",
|
||||||
"MachineName": "dev-fusion",
|
"Memory": 1024,
|
||||||
"Memory": 1024,
|
"PrivateKeyPath": "/Users/hairyhenderson/.docker/machine/certs/ca-key.pem",
|
||||||
"PrivateKeyPath": "/Users/hairyhenderson/.docker/machine/certs/ca-key.pem",
|
"SSHPort": 22,
|
||||||
"SSHPort": 22,
|
"SSHUser": "docker",
|
||||||
"SSHUser": "docker",
|
"SwarmDiscovery": "",
|
||||||
"SwarmDiscovery": "",
|
"SwarmHost": "tcp://0.0.0.0:3376",
|
||||||
"SwarmHost": "tcp://0.0.0.0:3376",
|
"SwarmMaster": false
|
||||||
"SwarmMaster": false
|
}
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
|
@ -12,10 +12,8 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
Get the IP address of one or more machines.
|
Get the IP address of one or more machines.
|
||||||
|
|
||||||
```
|
$ docker-machine ip dev
|
||||||
$ docker-machine ip dev
|
192.168.99.104
|
||||||
192.168.99.104
|
$ docker-machine ip dev dev2
|
||||||
$ docker-machine ip dev dev2
|
192.168.99.104
|
||||||
192.168.99.104
|
192.168.99.105
|
||||||
192.168.99.105
|
|
||||||
```
|
|
||||||
|
|
|
@ -13,12 +13,10 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
Kill (abruptly force stop) a machine.
|
Kill (abruptly force stop) a machine.
|
||||||
|
|
||||||
```
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
dev * virtualbox Running tcp://192.168.99.104:2376
|
||||||
dev * virtualbox Running tcp://192.168.99.104:2376
|
$ docker-machine kill dev
|
||||||
$ docker-machine kill dev
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
dev * virtualbox Stopped
|
||||||
dev * virtualbox Stopped
|
|
||||||
```
|
|
||||||
|
|
|
@ -10,16 +10,14 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
# ls
|
# ls
|
||||||
|
|
||||||
```
|
Usage: docker-machine ls [OPTIONS] [arg...]
|
||||||
Usage: docker-machine ls [OPTIONS] [arg...]
|
|
||||||
|
|
||||||
List machines
|
List machines
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
--quiet, -q Enable quiet mode
|
--quiet, -q Enable quiet mode
|
||||||
--filter [--filter option --filter option] Filter output based on conditions provided
|
--filter [--filter option --filter option] Filter output based on conditions provided
|
||||||
```
|
|
||||||
|
|
||||||
## Filtering
|
## Filtering
|
||||||
|
|
||||||
|
@ -28,24 +26,20 @@ than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bi
|
||||||
|
|
||||||
The currently supported filters are:
|
The currently supported filters are:
|
||||||
|
|
||||||
* driver (driver name)
|
- driver (driver name)
|
||||||
* swarm (swarm master's name)
|
- swarm (swarm master's name)
|
||||||
* state (`Running|Paused|Saved|Stopped|Stopping|Starting|Error`)
|
- state (`Running|Paused|Saved|Stopped|Stopping|Starting|Error`)
|
||||||
* name (Machine name returned by driver, supports [golang style](https://github.com/google/re2/wiki/Syntax) regular expressions)
|
- name (Machine name returned by driver, supports [golang style](https://github.com/google/re2/wiki/Syntax) regular expressions)
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
```
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
dev - virtualbox Stopped
|
||||||
dev - virtualbox Stopped
|
foo0 - virtualbox Running tcp://192.168.99.105:2376
|
||||||
foo0 - virtualbox Running tcp://192.168.99.105:2376
|
foo1 - virtualbox Running tcp://192.168.99.106:2376
|
||||||
foo1 - virtualbox Running tcp://192.168.99.106:2376
|
foo2 * virtualbox Running tcp://192.168.99.107:2376
|
||||||
foo2 * virtualbox Running tcp://192.168.99.107:2376
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
$ docker-machine ls --filter driver=virtualbox --filter state=Stopped
|
||||||
$ docker-machine ls --filter driver=virtualbox --filter state=Stopped
|
NAME ACTIVE DRIVER STATE URL SWARM
|
||||||
NAME ACTIVE DRIVER STATE URL SWARM
|
dev - virtualbox Stopped
|
||||||
dev - virtualbox Stopped
|
|
||||||
```
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
Regenerate TLS certificates and update the machine with new certs.
|
Regenerate TLS certificates and update the machine with new certs.
|
||||||
|
|
||||||
```
|
$ docker-machine regenerate-certs dev
|
||||||
$ docker-machine regenerate-certs dev
|
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
|
||||||
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
|
Regenerating TLS certificates
|
||||||
Regenerating TLS certificates
|
|
||||||
```
|
|
||||||
|
|
|
@ -14,7 +14,5 @@ parent="smn_machine_subcmds"
|
||||||
Restart a machine. Oftentimes this is equivalent to
|
Restart a machine. Oftentimes this is equivalent to
|
||||||
`docker-machine stop; docker-machine start`.
|
`docker-machine stop; docker-machine start`.
|
||||||
|
|
||||||
```
|
$ docker-machine restart dev
|
||||||
$ docker-machine restart dev
|
Waiting for VM to start...
|
||||||
Waiting for VM to start...
|
|
||||||
```
|
|
||||||
|
|
|
@ -14,13 +14,11 @@ parent="smn_machine_subcmds"
|
||||||
Remove a machine. This will remove the local reference as well as delete it
|
Remove a machine. This will remove the local reference as well as delete it
|
||||||
on the cloud provider or virtualization management platform.
|
on the cloud provider or virtualization management platform.
|
||||||
|
|
||||||
```
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
foo0 - virtualbox Running tcp://192.168.99.105:2376
|
||||||
foo0 - virtualbox Running tcp://192.168.99.105:2376
|
foo1 - virtualbox Running tcp://192.168.99.106:2376
|
||||||
foo1 - virtualbox Running tcp://192.168.99.106:2376
|
$ docker-machine rm foo1
|
||||||
$ docker-machine rm foo1
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
foo0 - virtualbox Running tcp://192.168.99.105:2376
|
||||||
foo0 - virtualbox Running tcp://192.168.99.105:2376
|
|
||||||
```
|
|
||||||
|
|
|
@ -18,17 +18,15 @@ machine's case, you don't have to specify the name, just the path.
|
||||||
|
|
||||||
Consider the following example:
|
Consider the following example:
|
||||||
|
|
||||||
```
|
$ cat foo.txt
|
||||||
$ cat foo.txt
|
cat: foo.txt: No such file or directory
|
||||||
cat: foo.txt: No such file or directory
|
$ docker-machine ssh dev pwd
|
||||||
$ docker-machine ssh dev pwd
|
/home/docker
|
||||||
/home/docker
|
$ docker-machine ssh dev 'echo A file created remotely! >foo.txt'
|
||||||
$ docker-machine ssh dev 'echo A file created remotely! >foo.txt'
|
$ docker-machine scp dev:/home/docker/foo.txt .
|
||||||
$ docker-machine scp dev:/home/docker/foo.txt .
|
foo.txt 100% 28 0.0KB/s 00:00
|
||||||
foo.txt 100% 28 0.0KB/s 00:00
|
$ cat foo.txt
|
||||||
$ cat foo.txt
|
A file created remotely!
|
||||||
A file created remotely!
|
|
||||||
```
|
|
||||||
|
|
||||||
Just like how `scp` has a `-r` flag for copying files recursively,
|
Just like how `scp` has a `-r` flag for copying files recursively,
|
||||||
`docker-machine` has a `-r` flag for this feature.
|
`docker-machine` has a `-r` flag for this feature.
|
||||||
|
|
|
@ -14,51 +14,45 @@ Log into or run a command on a machine using SSH.
|
||||||
|
|
||||||
To login, just run `docker-machine ssh machinename`:
|
To login, just run `docker-machine ssh machinename`:
|
||||||
|
|
||||||
```
|
$ docker-machine ssh dev
|
||||||
$ docker-machine ssh dev
|
## .
|
||||||
## .
|
## ## ## ==
|
||||||
## ## ## ==
|
## ## ## ## ===
|
||||||
## ## ## ## ===
|
/""""""""""""""""\___/ ===
|
||||||
/""""""""""""""""\___/ ===
|
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
|
||||||
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
|
\______ o __/
|
||||||
\______ o __/
|
\ \ __/
|
||||||
\ \ __/
|
\____\______/
|
||||||
\____\______/
|
_ _ ____ _ _
|
||||||
_ _ ____ _ _
|
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
|
||||||
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
|
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
|
||||||
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|
||||||
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
|
||||||
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
|
Boot2Docker version 1.4.0, build master : 69cf398 - Fri Dec 12 01:39:42 UTC 2014
|
||||||
Boot2Docker version 1.4.0, build master : 69cf398 - Fri Dec 12 01:39:42 UTC 2014
|
docker@boot2docker:~$ ls /
|
||||||
docker@boot2docker:~$ ls /
|
Users/ dev/ home/ lib/ mnt/ proc/ run/ sys/ usr/
|
||||||
Users/ dev/ home/ lib/ mnt/ proc/ run/ sys/ usr/
|
bin/ etc/ init linuxrc opt/ root/ sbin/ tmp var/
|
||||||
bin/ etc/ init linuxrc opt/ root/ sbin/ tmp var/
|
|
||||||
```
|
|
||||||
|
|
||||||
You can also specify commands to run remotely by appending them directly to the
|
You can also specify commands to run remotely by appending them directly to the
|
||||||
`docker-machine ssh` command, much like the regular `ssh` program works:
|
`docker-machine ssh` command, much like the regular `ssh` program works:
|
||||||
|
|
||||||
```
|
$ docker-machine ssh dev free
|
||||||
$ docker-machine ssh dev free
|
total used free shared buffers
|
||||||
total used free shared buffers
|
Mem: 1023556 183136 840420 0 30920
|
||||||
Mem: 1023556 183136 840420 0 30920
|
-/+ buffers: 152216 871340
|
||||||
-/+ buffers: 152216 871340
|
Swap: 1212036 0 1212036
|
||||||
Swap: 1212036 0 1212036
|
|
||||||
```
|
|
||||||
|
|
||||||
Commands with flags will work as well:
|
Commands with flags will work as well:
|
||||||
|
|
||||||
```
|
$ docker-machine ssh dev df -h
|
||||||
$ docker-machine ssh dev df -h
|
Filesystem Size Used Available Use% Mounted on
|
||||||
Filesystem Size Used Available Use% Mounted on
|
rootfs 899.6M 85.9M 813.7M 10% /
|
||||||
rootfs 899.6M 85.9M 813.7M 10% /
|
tmpfs 899.6M 85.9M 813.7M 10% /
|
||||||
tmpfs 899.6M 85.9M 813.7M 10% /
|
tmpfs 499.8M 0 499.8M 0% /dev/shm
|
||||||
tmpfs 499.8M 0 499.8M 0% /dev/shm
|
/dev/sda1 18.2G 58.2M 17.2G 0% /mnt/sda1
|
||||||
/dev/sda1 18.2G 58.2M 17.2G 0% /mnt/sda1
|
cgroup 499.8M 0 499.8M 0% /sys/fs/cgroup
|
||||||
cgroup 499.8M 0 499.8M 0% /sys/fs/cgroup
|
/dev/sda1 18.2G 58.2M 17.2G 0%
|
||||||
/dev/sda1 18.2G 58.2M 17.2G 0%
|
/mnt/sda1/var/lib/docker/aufs
|
||||||
/mnt/sda1/var/lib/docker/aufs
|
|
||||||
```
|
|
||||||
|
|
||||||
If you are using the "external" SSH type as detailed in the next section, you
|
If you are using the "external" SSH type as detailed in the next section, you
|
||||||
can include additional arguments to pass through to the `ssh` binary in the
|
can include additional arguments to pass through to the `ssh` binary in the
|
||||||
|
@ -67,9 +61,7 @@ the command generated by Docker Machine). For instance, the following command
|
||||||
will forward port 8080 from the `default` machine to `localhost` on your host
|
will forward port 8080 from the `default` machine to `localhost` on your host
|
||||||
computer:
|
computer:
|
||||||
|
|
||||||
```
|
$ docker-machine ssh default -L 8080:localhost:8080
|
||||||
$ docker-machine ssh default -L 8080:localhost:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
## Different types of SSH
|
## Different types of SSH
|
||||||
|
|
||||||
|
@ -88,9 +80,7 @@ and Docker Machine will act sensibly out of the box. However, if you
|
||||||
deliberately want to use the Go native version, you can do so with a global
|
deliberately want to use the Go native version, you can do so with a global
|
||||||
command line flag / environment variable like so:
|
command line flag / environment variable like so:
|
||||||
|
|
||||||
```
|
$ docker-machine --native-ssh ssh dev
|
||||||
$ docker-machine --native-ssh ssh dev
|
|
||||||
```
|
|
||||||
|
|
||||||
There are some variations in behavior between the two methods, so please report
|
There are some variations in behavior between the two methods, so please report
|
||||||
any issues or inconsistencies if you come across them.
|
any issues or inconsistencies if you come across them.
|
||||||
|
|
|
@ -13,7 +13,5 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
Start a machine.
|
Start a machine.
|
||||||
|
|
||||||
```
|
$ docker-machine start dev
|
||||||
$ docker-machine start dev
|
Starting VM...
|
||||||
Starting VM...
|
|
||||||
```
|
|
||||||
|
|
|
@ -12,7 +12,5 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
Get the status of a machine.
|
Get the status of a machine.
|
||||||
|
|
||||||
```
|
$ docker-machine status dev
|
||||||
$ docker-machine status dev
|
Running
|
||||||
Running
|
|
||||||
```
|
|
||||||
|
|
|
@ -13,12 +13,10 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
Gracefully stop a machine.
|
Gracefully stop a machine.
|
||||||
|
|
||||||
```
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
dev * virtualbox Running tcp://192.168.99.104:2376
|
||||||
dev * virtualbox Running tcp://192.168.99.104:2376
|
$ docker-machine stop dev
|
||||||
$ docker-machine stop dev
|
$ docker-machine ls
|
||||||
$ docker-machine ls
|
NAME ACTIVE DRIVER STATE URL
|
||||||
NAME ACTIVE DRIVER STATE URL
|
dev * virtualbox Stopped
|
||||||
dev * virtualbox Stopped
|
|
||||||
```
|
|
||||||
|
|
|
@ -19,16 +19,14 @@ expects Ubuntu machines it manages to use this package. As another example, if
|
||||||
the machine uses boot2docker for its OS, this command will download the latest
|
the machine uses boot2docker for its OS, this command will download the latest
|
||||||
boot2docker ISO and replace the machine's existing ISO with the latest.
|
boot2docker ISO and replace the machine's existing ISO with the latest.
|
||||||
|
|
||||||
```
|
$ docker-machine upgrade dev
|
||||||
$ docker-machine upgrade dev
|
Stopping machine to do the upgrade...
|
||||||
Stopping machine to do the upgrade...
|
Upgrading machine dev...
|
||||||
Upgrading machine dev...
|
Downloading latest boot2docker release to /home/username/.docker/machine/cache/boot2docker.iso...
|
||||||
Downloading latest boot2docker release to /home/username/.docker/machine/cache/boot2docker.iso...
|
Starting machine back up...
|
||||||
Starting machine back up...
|
Waiting for VM to start...
|
||||||
Waiting for VM to start...
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Note**: If you are using a custom boot2docker ISO specified using
|
> **Note**: If you are using a custom boot2docker ISO specified using
|
||||||
> `--virtualbox-boot2docker-url` or an equivalent flag, running an upgrade on
|
> `--virtualbox-boot2docker-url` or an equivalent flag, running an upgrade on
|
||||||
> that machine will completely replace the specified ISO with the latest
|
> that machine will completely replace the specified ISO with the latest
|
||||||
> "vanilla" boot2docker ISO available.
|
> "vanilla" boot2docker ISO available.
|
||||||
|
|
|
@ -12,7 +12,5 @@ parent="smn_machine_subcmds"
|
||||||
|
|
||||||
Get the URL of a host
|
Get the URL of a host
|
||||||
|
|
||||||
```
|
$ docker-machine url dev
|
||||||
$ docker-machine url dev
|
tcp://192.168.99.109:2376
|
||||||
tcp://192.168.99.109:2376
|
|
||||||
```
|
|
||||||
|
|
Loading…
Reference in New Issue