Merge pull request #2435 from dgageot/lint-markdown

Lint all Markdown documents
This commit is contained in:
Jean-Laurent de Morlhon 2015-11-27 10:57:36 +01:00
commit e9470d3b26
49 changed files with 1117 additions and 1219 deletions

View File

@ -1,5 +1,4 @@
Changelog
==========
# Changelog
# 0.5.1 (2015-11-16)
@ -57,17 +56,20 @@ Changelog
# 0.4.0 (2015-08-11)
## Updates
- HTTP Proxy support for Docker Engine
- RedHat distros now use Docker Yum repositories
- Ability to set environment variables in the Docker Engine
- Internal libmachine updates for stability
## Drivers
- Google:
- Preemptible instances
- Static IP support
## Fixes
- Swarm Discovery Flag is verified
- Timeout added to `ls` command to prevent hangups
- SSH command failure now reports information about error
@ -76,6 +78,7 @@ Changelog
# 0.3.0 (2015-06-18)
## Features
- Engine option configuration (ability to configure all engine options)
- Swarm option configuration (ability to configure all swarm options)
- New Provisioning system to allow for greater flexibility and stability for installing and configuring Docker
@ -95,6 +98,7 @@ Changelog
- Specify Swarm version (`--swarm-image` flag)
## Drivers
- New: Exoscale Driver
- New: Generic Driver (provision any host with supported base OS and SSH)
- Amazon EC2
@ -125,16 +129,19 @@ Changelog
- Shared folder support
## Fixes
- Provisioning improvements to ensure Docker is available
- SSH improvements for provisioning stability
- Fixed SSH key generation bug on Windows
- Help formatting for improved readability
## 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
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
contributors for outstanding contributions to the project:
@ -207,8 +214,8 @@ Core Stability and Driver Updates
- Commands now use eval for better interoperability with shell
## Testing
- New integration test framework (bats)
- New integration test framework (bats)
# 0.1.0 (2015-02-26)

View File

@ -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;
example of cloning and preparing the correct environment `GOPATH`:
```
mkdir docker-machine
cd docker-machine
export GOPATH="$PWD"
go get github.com/docker/machine
cd src/github.com/docker/machine
```
At this point, simply run:
@ -56,6 +55,7 @@ You may call:
to clean-up build results.
## Tests and validation
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`
@ -67,7 +67,6 @@ If you want more indepth validation (vet, lint), and all tests with race detecti
$ make validate
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.
@ -77,7 +76,7 @@ To generate an html code coverage report of the Machine codebase, run:
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
@ -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,
the proper secrets):
```
$ DRIVER=amazonec2 \
$ DRIVER=amazonec2 \
AWS_VPC_ID=vpc-xxxxxxx \
AWS_SECRET_ACCESS_KEY=yyyyyyyyyyyyy \
AWS_ACCESS_KEY_ID=zzzzzzzzzzzzzzzz \
AWS_AMI=ami-12663b7a \
AWS_SSH_USER=ec2-user \
make test-integration test/integration/core
```
in order to run the core tests on Red Hat Enterprise Linux on Amazon.
@ -233,9 +230,9 @@ At the time of writing, there is:
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
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
line interface, without much regard for driver-specific details.
line interface, without much regard for driver-specific details.
### 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.
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`
test which involves several machines, or a test intended to create and check
some property of a Swarm cluster.
deliberately testing something which involves multiple machines, such as an `ls`
test which involves several machines, or a test intended to create and check
some property of a Swarm cluster.
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
that BATS provides and/or to get debugging information.
fails. This can be useful, for instance to dump the magic `$output` variable
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
BATS wrapper script has a hook to take care of cleaning up all created machines
after each test.
BATS wrapper script has a hook to take care of cleaning up all created machines
after each test.
# Drivers
@ -263,7 +260,7 @@ to ensure we keep the driver in a consistent and stable state:
- Address issues filed against this driver in a timely manner
- Review PRs for the driver
- 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
If you can commit to those, the next step is to make sure the driver adheres

View File

@ -14,18 +14,21 @@ For what is coming in specific releases, see our [upcoming
milestones](https://github.com/docker/machine/milestones).)
### 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.
### Boot2Docker Migration Support
Currently both Machine and Boot2Docker provider similar functionality. This will enable users to migrate from boot2docker to machine.
### 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.
### 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.
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.

View File

@ -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
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.
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| ---------------------- | -------------------------------------------------------------- | --------------------------------------------------- | ------------------------- |
| 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 |
| 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 |
| 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 |
| 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 |
| xhyve | <https://github.com/zchee/docker-machine-xhyve> | [zchee](https://github.com/zchee) | zchee.io@gmail.com |

View File

@ -10,79 +10,95 @@ parent="mn_install"
<![end-metadata]-->
# Machine Driver Specification v1
This is the standard configuration and specification for version 1 drivers.
Along with defining how a driver should provision instances, the standard
also discusses behavior and operations Machine expects.
# Requirements
The following are required for a driver to be included as a supported driver
for Docker Machine.
## Base Operating System
The provider must offer a base operating system supported by the Docker Engine.
Currently Machine requires Ubuntu for non-Boot2Docker machines. This will
change in the future.
## API Access
We prefer accessing the provider service via HTTP APIs and strongly recommend
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
maintainer.
## SSH
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
level maintenance.
# Provider Operations
The following instance operations should be supported by the provider.
## Create
`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
sure SSH is available including any access control (firewall). This should
return an error on failure.
## Remove
`Remove` will remove the instance from the provider. This should remove the
instance and any associated services or artifacts that were created as part
of the instance including keys and access groups. This should return an
error on failure.
## Start
`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
failure.
## Stop
`Stop` will stop a running instance. This should ensure the instance is
stopped and return an error on failure.
## Kill
`Kill` will forcibly stop a running instance. This should ensure the instance
is stopped and return an error on failure.
## Restart
`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
on failure.
## Status
`Status` will return the state of the instance. This should return the
current state of the instance (running, stopped, error, etc). This should
return an error on failure.
# Testing
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).
# Maintaining
Driver plugin maintainers are encouraged to host their own repo and distribute
the driver plugins as executables.
# Implementation
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
operations such as `Create`, `Remove`, `Start`, `Stop` etc.
@ -91,30 +107,26 @@ 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:
```
type Driver struct {
type Driver struct {
*drivers.BaseDriver
DriverSpecificField string
}
```
}
Each driver must then use an `init` func to "register" the driver:
```
func init() {
func init() {
drivers.Register("drivername", &drivers.RegisteredDriver{
New: NewDriver,
GetCreateFlags: GetCreateFlags,
})
}
```
}
## Flags
Driver flags are used for provider specific customizations. To add flags, use
a `GetCreateFlags` func. For example:
```
func GetCreateFlags() []cli.Flag {
func GetCreateFlags() []cli.Flag {
return []cli.Flag{
cli.StringFlag{
EnvVar: "DRIVERNAME_TOKEN",
@ -129,9 +141,9 @@ func GetCreateFlags() []cli.Flag {
Value: "ubuntu-14-04-x64",
},
}
}
```
}
## Examples
You can reference the existing [Drivers](https://github.com/docker/machine/tree/master/drivers)
as well.

View File

@ -25,9 +25,9 @@ If you want to add a new file or change the location of the document in the menu
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
---> 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/
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
documentation resolves. You can't access the other project docs from this
@ -78,11 +78,10 @@ The metadata alone has this structure:
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.
## 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.

View File

@ -13,44 +13,44 @@ to cover the current Docker Machine release process. It is written for Docker
Machine core maintainers who might find themselves performing a release.
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`
variable in `version/version.go` to the release version. Merge said pull
request.
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
request.
2. **Compile Binaries** -- Pull down the latest changes to master and
cross-compile the core binary and plugin binaries for each supported OS /
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
them on DigitalOcean in
parallel](https://gist.github.com/nathanleclaire/7f62fc5aa3df19a50f4e).
cross-compile the core binary and plugin binaries for each supported OS /
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
them on DigitalOcean in
parallel](https://gist.github.com/nathanleclaire/7f62fc5aa3df19a50f4e).
3. **Archive Binaries** -- The binaries are distributed in `.zip` files so you
need to run the `make release-pack` target to generate the distributed
artifacts.
need to run the `make release-pack` target to generate the distributed
artifacts.
4. **Upload Archives** -- Use a script or sequence of commands such as [this
one](https://gist.github.com/nathanleclaire/a9bc1f8d60070aeda361) to create a
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
the `Makefile` does not work correctly for this step but it should eventually be
split into a separate target and fixed.
one](https://gist.github.com/nathanleclaire/a9bc1f8d60070aeda361) to create a
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
the `Makefile` does not work correctly for this step but it should eventually be
split into a separate target and fixed.
5. **Generate Checksums** -- [This
script](https://gist.github.com/nathanleclaire/c506ad3736d33bd42c2f) will spit
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
downloaded artifacts.
script](https://gist.github.com/nathanleclaire/c506ad3736d33bd42c2f) will spit
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
downloaded artifacts.
6. **Add Installation Instructions** -- At the top of the release notes, copy and
paste the installation instructions from the previous release, taking care to
update the referenced download URLs to the new version.
paste the installation instructions from the previous release, taking care to
update the referenced download URLs to the new version.
7. **Add Release Notes** -- If release notes are already prepared, copy and
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
using `git log` and summarize the changes in Markdown, preferably by category.
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
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
`CHANGELOG.md` file in the repository.
`CHANGELOG.md` file in the repository.
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
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
release notes.. For instance, to print out the list of all unique authors since
the v0.5.0 release:
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
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
the v0.5.0 release:
$ git log v0.5.0.. --format="%aN" --reverse | sort | uniq | awk '{printf "- %s\n", $0 }'
- Amir Mohammad
@ -70,12 +70,12 @@ the v0.5.0 release:
- root
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
deployed from the release branch / master.
the Docker docs team uses to deploy from) is up to date with the changes to be
deployed from the release branch / master.
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
(uninvolved) buddy and have them try it. `docker-machine -v` should give them
the released version once they have run the install commands.
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
the released version once they have run the install commands.
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
sommelier.
You deserve it. For wine suggestions, please consult your friendly neighborhood
sommelier.

View File

@ -9,54 +9,52 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# 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:
- Access Key ID
- Secret Access Key
- VPC ID
- Access Key ID
- Secret Access Key
- VPC ID
Obtain your IDs and Keys from AWS. To find the VPC ID:
1. Login to the AWS console
2. Go to **Services -> VPC -> Your VPCs**.
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.
1. Login to the AWS console
2. Go to **Services -> VPC -> Your VPCs**.
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.
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.
```
$ 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`.
$ 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`.
### Options
- `--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-session-token`: Your session token for the Amazon Web Services API.
- `--amazonec2-ami`: The AMI ID of the instance to use.
- `--amazonec2-region`: The region to use when launching the instance.
- `--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-subnet-id`: AWS VPC subnet id.
- `--amazonec2-security-group`: AWS VPC security group name.
- `--amazonec2-instance-type`: The instance type to run.
- `--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-ssh-user`: SSH Login user name.
- `--amazonec2-request-spot-instance`: Use spot instances.
- `--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-monitoring`: Enable CloudWatch Monitoring.
- `--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-session-token`: Your session token for the Amazon Web Services API.
- `--amazonec2-ami`: The AMI ID of the instance to use.
- `--amazonec2-region`: The region to use when launching the instance.
- `--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-subnet-id`: AWS VPC subnet id.
- `--amazonec2-security-group`: AWS VPC security group name.
- `--amazonec2-instance-type`: The instance type to run.
- `--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-ssh-user`: SSH Login user name.
- `--amazonec2-request-spot-instance`: Use spot instances.
- `--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-monitoring`: Enable CloudWatch Monitoring.
By default, the Amazon EC2 driver will use a daily image of Ubuntu 14.04 LTS.
| Region | AMI ID |
|----------------|--------------|
| -------------- | ------------ |
| ap-northeast-1 | ami-f4b06cf4 |
| ap-southeast-1 | ami-b899a2ea |
| 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:
| CLI option | Environment variable | Default |
|-------------------------------------|-------------------------|------------------|
| ----------------------------------- | ----------------------- | ---------------- |
| **`--amazonec2-access-key`** | `AWS_ACCESS_KEY_ID` | - |
| **`--amazonec2-secret-key`** | `AWS_SECRET_ACCESS_KEY` | - |
| `--amazonec2-session-token` | `AWS_SESSION_TOKEN` | - |

View File

@ -9,6 +9,7 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# Microsoft Azure
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:
@ -32,23 +33,23 @@ You may need to `machine ssh` in to the virtual machine and reboot to ensure tha
Options:
- `--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-location`: Machine instance location.
- `--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-size`: Azure disk size.
- `--azure-ssh-port`: Azure SSH port.
- `--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-username`: Azure login user name.
- `--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-location`: Machine instance location.
- `--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-size`: Azure disk size.
- `--azure-ssh-port`: Azure SSH port.
- `--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-username`: Azure login user name.
Environment variables and default values:
| CLI option | Environment variable | Default |
|---------------------------------|-------------------------------| ----------------------|
| ------------------------------- | ----------------------------- | ---------------------- |
| `--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-password` | - | - |
| `--azure-publish-settings-file` | `AZURE_PUBLISH_SETTINGS_FILE` | - |

View File

@ -9,6 +9,7 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# Digital Ocean
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
@ -18,20 +19,20 @@ Control Panel and pass that to `docker-machine create` with the `--digitalocean-
Options:
- `--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-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-ipv6`: Enable IPv6 support for the droplet.
- `--digitalocean-private-networking`: Enable private networking support for the droplet.
- `--digitalocean-backups`: Enable Digital Oceans backups for the droplet.
- `--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-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-ipv6`: Enable IPv6 support for the droplet.
- `--digitalocean-private-networking`: Enable private networking support 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.
Environment variables and default values:
| CLI option | Environment variable | Default |
|-------------------------------------|-----------------------------------|----------|
| ----------------------------------- | --------------------------------- | -------- |
| **`--digitalocean-access-token`** | `DIGITALOCEAN_ACCESS_TOKEN` | - |
| `--digitalocean-image` | `DIGITALOCEAN_IMAGE` | `docker` |
| `--digitalocean-region` | `DIGITALOCEAN_REGION` | `nyc3` |

View File

@ -9,27 +9,28 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# Exoscale
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.
Options:
- `--exoscale-url`: Your API endpoint.
- `--exoscale-api-key`: **required** Your API key.
- `--exoscale-api-secret-key`: **required** Your API secret key.
- `--exoscale-instance-profile`: Instance profile.
- `--exoscale-disk-size`: Disk size for the host in GB.
- `--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-availability-zone`: exoscale availability zone.
- `--exoscale-url`: Your API endpoint.
- `--exoscale-api-key`: **required** Your API key.
- `--exoscale-api-secret-key`: **required** Your API secret key.
- `--exoscale-instance-profile`: Instance profile.
- `--exoscale-disk-size`: Disk size for the host in GB.
- `--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-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.
Environment variables and default values:
| CLI option | Environment variable | Default |
|---------------------------------|------------------------------|-----------------------------------|
| ------------------------------- | ---------------------------- | --------------------------------- |
| `--exoscale-url` | `EXOSCALE_ENDPOINT` | `https://api.exoscale.ch/compute` |
| **`--exoscale-api-key`** | `EXOSCALE_API_KEY` | - |
| **`--exoscale-api-secret-key`** | `EXOSCALE_API_SECRET` | - |

View File

@ -12,7 +12,7 @@ parent="smn_machine_drivers"
Create machines on [Google Compute Engine](https://cloud.google.com/compute/).
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
@ -28,15 +28,13 @@ through the oauth2 process with `gcloud auth login`.
To create a machine instance, specify `--driver google`, the project id and the machine name.
```
$ gcloud auth login
$ docker-machine create --driver google --google-project PROJECT_ID vm01
$ docker-machine create --driver google \
$ gcloud auth login
$ docker-machine create --driver google --google-project PROJECT_ID vm01
$ docker-machine create --driver google \
--google-project PROJECT_ID \
--google-zone us-central1-a \
--google-machine-type f1-micro \
vm02
```
### Options
@ -55,14 +53,13 @@ $ docker-machine create --driver google \
The GCE driver will use the `ubuntu-1404-trusty-v20151113` instance image unless otherwise specified. To obtain a
list of image URLs run:
```
gcloud compute images list --uri
```
gcloud compute images list --uri
Environment variables and default values:
| CLI option | Environment variable | Default |
|----------------------------|--------------------------|--------------------------------------|
| -------------------------- | ------------------------ | ------------------------------------ |
| **`--google-project`** | `GOOGLE_PROJECT` | - |
| `--google-zone` | `GOOGLE_ZONE` | `us-central1-a` |
| `--google-machine-type` | `GOOGLE_MACHINE_TYPE` | `f1-standard-1` |

View File

@ -9,6 +9,7 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# Microsoft Hyper-V
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)
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:
- `--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-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-memory`: Size of memory for the host in MB. By default, the machine is setup to use dynamic memory.
- `--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-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-memory`: Size of memory for the host in MB. By default, the machine is setup to use dynamic memory.
Environment variables and default values:
| CLI option | Environment variable | Default |
|----------------------------------|----------------------| -------------------------|
| `--hyperv-boot2docker-url` | - | *Latest boot2docker url* |
| ------------------------------- | -------------------- | ------------------------ |
| `--hyperv-boot2docker-url` | - | _Latest boot2docker url_ |
| `--hyperv-boot2docker-location` | - | - |
| `--hyperv-virtual-switch` | - | *first found* |
| `--hyperv-virtual-switch` | - | _first found_ |
| `--hyperv-disk-size` | - | `20000` |
| `--hyperv-memory` | - | `1024` |

View File

@ -11,17 +11,17 @@ identifier="smn_machine_drivers"
# Supported Drivers
* [Amazon Web Services](aws.md)
* [Microsoft Azure](azure.md)
* [Digital Ocean](digital-ocean.md)
* [Exoscale](exoscale.md)
* [Google Compute Engine](gce.md)
* [Generic](generic.md)
* [Microsoft Hyper-V](hyper-v.md)
* [OpenStack](openstack.md)
* [Rackspace](rackspace.md)
* [IBM Softlayer](soft-layer.md)
* [Oracle VirtualBox](virtualbox.md)
* [VMware vCloud Air](vm-cloud.md)
* [VMware Fusion](vm-fusion.md)
* [VMware vSphere](vsphere.md)
- [Amazon Web Services](aws.md)
- [Microsoft Azure](azure.md)
- [Digital Ocean](digital-ocean.md)
- [Exoscale](exoscale.md)
- [Google Compute Engine](gce.md)
- [Generic](generic.md)
- [Microsoft Hyper-V](hyper-v.md)
- [OpenStack](openstack.md)
- [Rackspace](rackspace.md)
- [IBM Softlayer](soft-layer.md)
- [Oracle VirtualBox](virtualbox.md)
- [VMware vCloud Air](vm-cloud.md)
- [VMware Fusion](vm-fusion.md)
- [VMware vSphere](vsphere.md)

View File

@ -9,40 +9,41 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# OpenStack
Create machines on [OpenStack](http://www.openstack.org/software/)
Mandatory:
- `--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-image-id` or `--openstack-image-name`: Identify the image that will be used for the machine.
- `--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-image-id` or `--openstack-image-name`: Identify the image that will be used for the machine.
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-domain-name` or `--openstack-domain-id`: Domain to use for authentication (Keystone v3 only)
- `--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-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-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-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-username`: User identifier to authenticate with.
- `--openstack-password`: User password. It can be omitted if the standard environment variable `OS_PASSWORD` is set.
- `--openstack-tenant-name` or `--openstack-tenant-id`: Identify the tenant in which the machine will be created.
- `--openstack-region`: The region to work on. Can be omitted if there is only one region on the OpenStack.
- `--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
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-sec-groups`: If security groups are available on your OpenStack you can specify a comma separated list
- `--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
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
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-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-active-timeout`: The timeout in seconds until the OpenStack instance must be active.
- `--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-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.
Environment variables and default values:
| CLI option | Environment variable | Default |
|----------------------------------|------------------------|-------------|
| ------------------------------- | ---------------------- | ----------- |
| `--openstack-auth-url` | `OS_AUTH_URL` | - |
| `--openstack-flavor-name` | `OS_FLAVOR_NAME` | - |
| `--openstack-flavor-id` | `OS_FLAVOR_ID` | - |

View File

@ -37,7 +37,7 @@ so forth, the default base operating system is Boot2Docker. For cloud providers,
the base operating system is the latest Ubuntu LTS the provider supports.
| Operating System | Version | Notes |
|----------------------------|------------------|-------------------------|
| ----------------------- | ------- | ------------------ |
| Boot2Docker | 1.5+ | default for local |
| Ubuntu | 12.04+ | default for remote |
| RancherOS | 0.3+ | |

View File

@ -9,26 +9,27 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# Rackspace
Create machines on [Rackspace cloud](http://www.rackspace.com/cloud)
Options:
- `--rackspace-username`: **required** Rackspace account username.
- `--rackspace-api-key`: **required** Rackspace API key.
- `--rackspace-region`: **required** Rackspace region name.
- `--rackspace-endpoint-type`: Rackspace endpoint type (`adminURL`, `internalURL` or the default `publicURL`).
- `--rackspace-image-id`: Rackspace image ID. Default: Ubuntu 14.10 (Utopic Unicorn) (PVHVM).
- `--rackspace-flavor-id`: Rackspace flavor ID. Default: General Purpose 1GB.
- `--rackspace-ssh-user`: SSH user for the newly booted machine.
- `--rackspace-ssh-port`: SSH port for the newly booted machine.
- `--rackspace-docker-install`: Set if Docker has to be installed on the machine.
- `--rackspace-username`: **required** Rackspace account username.
- `--rackspace-api-key`: **required** Rackspace API key.
- `--rackspace-region`: **required** Rackspace region name.
- `--rackspace-endpoint-type`: Rackspace endpoint type (`adminURL`, `internalURL` or the default `publicURL`).
- `--rackspace-image-id`: Rackspace image ID. Default: Ubuntu 14.10 (Utopic Unicorn) (PVHVM).
- `--rackspace-flavor-id`: Rackspace flavor ID. Default: General Purpose 1GB.
- `--rackspace-ssh-user`: SSH user for the newly booted machine.
- `--rackspace-ssh-port`: SSH port for the newly booted 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.
Environment variables and default values:
| CLI option | Environment variable | Default |
|------------------------------|----------------------|----------------------------------------|
| ---------------------------- | -------------------- | -------------------------------------- |
| **`--rackspace-username`** | `OS_USERNAME` | - |
| **`--rackspace-api-key`** | `OS_API_KEY` | - |
| **`--rackspace-region`** | `OS_REGION_NAME` | - |

View File

@ -9,6 +9,7 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# IBM Softlayer
Create machines on [Softlayer](http://softlayer.com).
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:
- `--softlayer-memory`: Memory for host in MB.
- `--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-api-key`: **required** API key for your user account.
- `--softlayer-region`: SoftLayer region.
- `--softlayer-cpu`: Number of CPUs for the machine.
- `--softlayer-hostname`: Hostname for the machine.
- `--softlayer-domain`: **required** Domain name for the machine.
- `--softlayer-api-endpoint`: Change SoftLayer API endpoint.
- `--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-private-net-only`: Disable public networking.
- `--softlayer-image`: OS Image to use.
- `--softlayer-public-vlan-id`: Your public VLAN ID.
- `--softlayer-private-vlan-id`: Your private VLAN ID.
- `--softlayer-memory`: Memory for host in MB.
- `--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-api-key`: **required** API key for your user account.
- `--softlayer-region`: SoftLayer region.
- `--softlayer-cpu`: Number of CPUs for the machine.
- `--softlayer-hostname`: Hostname for the machine.
- `--softlayer-domain`: **required** Domain name for the machine.
- `--softlayer-api-endpoint`: Change SoftLayer API endpoint.
- `--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-private-net-only`: Disable public networking.
- `--softlayer-image`: OS Image to use.
- `--softlayer-public-vlan-id`: Your public VLAN ID.
- `--softlayer-private-vlan-id`: Your private VLAN ID.
The SoftLayer driver will use `UBUNTU_LATEST` as the image type by default.
Environment variables and default values:
| CLI option | Environment variable | Default |
|--------------------------------|-----------------------------|-----------------------------|
| ------------------------------ | --------------------------- | --------------------------- |
| `--softlayer-memory` | `SOFTLAYER_MEMORY` | `1024` |
| `--softlayer-disk-size` | `SOFTLAYER_DISK_SIZE` | `0` |
| **`--softlayer-user`** | `SOFTLAYER_USER` | - |

View File

@ -9,6 +9,7 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# Oracle VirtualBox
Create machines locally using [VirtualBox](https://www.virtualbox.org/).
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
Options:
- `--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-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-import-boot2docker-vm`: The name of a Boot2Docker VM to import.
- `--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-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-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-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-import-boot2docker-vm`: The name of a Boot2Docker VM to import.
- `--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-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
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
@ -62,11 +62,11 @@ upper bound of `192.168.24.254`.
Environment variables and default values:
| CLI option | Environment variable | Default |
|--------------------------------------|------------------------------------|--------------------------|
| ------------------------------------ | ---------------------------------- | ------------------------ |
| `--virtualbox-memory` | `VIRTUALBOX_MEMORY_SIZE` | `1024` |
| `--virtualbox-cpu-count` | `VIRTUALBOX_CPU_COUNT` | `1` |
| `--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-hostonly-cidr` | `VIRTUALBOX_HOSTONLY_CIDR` | `192.168.99.1/24` |
| `--virtualbox-hostonly-nictype` | `VIRTUALBOX_HOSTONLY_NIC_TYPE` | `82540EM` |

View File

@ -9,31 +9,32 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# VMware vCloud Air
Creates machines on [vCloud Air](http://vcloud.vmware.com) subscription service. You need an account within an existing subscription of vCloud Air VPC or Dedicated Cloud.
Options:
- `--vmwarevcloudair-username`: **required** vCloud Air Username.
- `--vmwarevcloudair-password`: **required** vCloud Air Password.
- `--vmwarevcloudair-computeid`: Compute ID (if using Dedicated Cloud).
- `--vmwarevcloudair-vdcid`: Virtual Data Center ID.
- `--vmwarevcloudair-orgvdcnetwork`: Organization VDC Network to attach.
- `--vmwarevcloudair-edgegateway`: Organization Edge Gateway.
- `--vmwarevcloudair-publicip`: Org Public IP to use.
- `--vmwarevcloudair-catalog`: Catalog.
- `--vmwarevcloudair-catalogitem`: Catalog Item.
- `--vmwarevcloudair-provision`: Install Docker binaries.
- `--vmwarevcloudair-cpu-count`: VM CPU Count.
- `--vmwarevcloudair-memory-size`: VM Memory Size in MB.
- `--vmwarevcloudair-ssh-port`: SSH port.
- `--vmwarevcloudair-docker-port`: Docker port.
- `--vmwarevcloudair-username`: **required** vCloud Air Username.
- `--vmwarevcloudair-password`: **required** vCloud Air Password.
- `--vmwarevcloudair-computeid`: Compute ID (if using Dedicated Cloud).
- `--vmwarevcloudair-vdcid`: Virtual Data Center ID.
- `--vmwarevcloudair-orgvdcnetwork`: Organization VDC Network to attach.
- `--vmwarevcloudair-edgegateway`: Organization Edge Gateway.
- `--vmwarevcloudair-publicip`: Org Public IP to use.
- `--vmwarevcloudair-catalog`: Catalog.
- `--vmwarevcloudair-catalogitem`: Catalog Item.
- `--vmwarevcloudair-provision`: Install Docker binaries.
- `--vmwarevcloudair-cpu-count`: VM CPU Count.
- `--vmwarevcloudair-memory-size`: VM Memory Size in MB.
- `--vmwarevcloudair-ssh-port`: SSH port.
- `--vmwarevcloudair-docker-port`: Docker port.
The VMware vCloud Air driver will use the `Ubuntu Server 12.04 LTS (amd64 20140927)` image by default.
Environment variables and default values:
| CLI option | Environment variable | Default |
|-----------------------------------|---------------------------|--------------------------------------------|
| --------------------------------- | ------------------------- | ------------------------------------------ |
| **`--vmwarevcloudair-username`** | `VCLOUDAIR_USERNAME` | - |
| **`--vmwarevcloudair-password`** | `VCLOUDAIR_PASSWORD` | - |
| `--vmwarevcloudair-computeid` | `VCLOUDAIR_COMPUTEID` | - |

View File

@ -9,15 +9,16 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# VMware Fusion
Creates machines locally on [VMware Fusion](http://www.vmware.com/products/fusion). Requires VMware Fusion to be installed.
Options:
- `--vmwarefusion-boot2docker-url`: URL for boot2docker image.
- `--vmwarefusion-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-memory-size`: Size of memory for host VM (in MB).
- `--vmwarefusion-no-share`: Disable the mount of your home directory.
- `--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-disk-size`: Size of disk 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.
The VMware Fusion driver uses the latest boot2docker image.
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:
| 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-disk-size` | `FUSION_DISK_SIZE` | `20000` |
| `--vmwarefusion-memory-size` | `FUSION_MEMORY_SIZE` | `1024` |

View File

@ -9,33 +9,34 @@ parent="smn_machine_drivers"
<![end-metadata]-->
# 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).
Options:
- `--vmwarevsphere-cpu-count`: CPU number for Docker VM.
- `--vmwarevsphere-memory-size`: Size of memory for Docker VM (in MB).
- `--vmwarevsphere-boot2docker-url`: URL for boot2docker image.
- `--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-username`: **required** vSphere Username.
- `--vmwarevsphere-password`: **required** vSphere Password.
- `--vmwarevsphere-network`: Network where the Docker VM will be attached.
- `--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-pool`: Resource pool for Docker VM.
- `--vmwarevsphere-compute-ip`: Compute host IP where the Docker VM will be instantiated.
- `--vmwarevsphere-cpu-count`: CPU number for Docker VM.
- `--vmwarevsphere-memory-size`: Size of memory for Docker VM (in MB).
- `--vmwarevsphere-boot2docker-url`: URL for boot2docker image.
- `--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-username`: **required** vSphere Username.
- `--vmwarevsphere-password`: **required** vSphere Password.
- `--vmwarevsphere-network`: Network where the Docker VM will be attached.
- `--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-pool`: Resource pool for Docker VM.
- `--vmwarevsphere-compute-ip`: Compute host IP where the Docker VM will be instantiated.
The VMware vSphere driver uses the latest boot2docker image.
Environment variables and default values:
| CLI option | Environment variable | Default |
|-----------------------------------|---------------------------|--------------------------|
| --------------------------------- | ------------------------- | ------------------------ |
| `--vmwarevsphere-cpu-count` | `VSPHERE_CPU_COUNT` | `2` |
| `--vmwarevsphere-memory-size` | `VSPHERE_MEMORY_SIZE` | `2048` |
| `--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-username`** | `VSPHERE_USERNAME` | - |
| **`--vmwarevsphere-password`** | `VSPHERE_PASSWORD` | - |

View File

@ -32,24 +32,22 @@ To generate your access token:
1. Go to the Digital Ocean administrator console and click on "API" in the header.
2. Click on "Generate New Token".
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
it somewhere safe.
it somewhere safe.
Now, run `docker-machine create` with the `digitalocean` driver and pass your key to
the `--digitalocean-access-token` flag.
Example:
```
$ docker-machine create \
$ docker-machine create \
--driver digitalocean \
--digitalocean-access-token 0ab77166d407f479c6701652cee3a46830fef88b8199722b87821621736ab2d4 \
staging
Creating SSH key...
Creating Digital Ocean droplet...
To see how to connect Docker to this machine, run: docker-machine env staging
```
Creating SSH key...
Creating Digital Ocean droplet...
To see how to connect Docker to this machine, run: docker-machine env staging
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
@ -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
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
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:
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev - virtualbox Running tcp://192.168.99.103:2376
staging * digitalocean Running tcp://104.236.50.118:2376
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev - virtualbox Running tcp://192.168.99.103: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`:
```
$ docker-machine rm dev staging
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
```
$ docker-machine rm dev staging
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
## 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 dont have to type out the URL
every time you run a Docker command.
```
$ docker-machine create --url=tcp://50.134.234.20:2376 custombox
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
custombox * none Running tcp://50.134.234.20:2376
```
$ docker-machine create --url=tcp://50.134.234.20:2376 custombox
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
custombox * none Running tcp://50.134.234.20:2376
## Using Docker Machine with 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.
@ -115,36 +106,29 @@ See the Swarm docs for details.
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:
```
$ eval "$(docker-machine env local)"
```
$ eval "$(docker-machine env local)"
Then run generate the token using the Swarm Docker image:
```
$ docker run swarm create
1257e0f0bbb499b5cd04b4c9bdb2dab3
```
$ docker run swarm create
1257e0f0bbb499b5cd04b4c9bdb2dab3
Once you have the token, you can create the cluster.
### Swarm master
Create the Swarm master:
```
docker-machine create \
docker-machine create \
-d virtualbox \
--swarm \
--swarm-master \
--swarm-discovery token://<TOKEN-FROM-ABOVE> \
swarm-master
```
Replace `<TOKEN-FROM-ABOVE>` with your random token.
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:
```
docker-machine create \
docker-machine create \
-d virtualbox \
--swarm \
--swarm-discovery token://<TOKEN-FROM-ABOVE> \
swarm-node-00
```
You now have a Swarm cluster across two nodes.
To connect to the Swarm master, use `eval $(docker-machine env --swarm swarm-master)`
For example:
```
$ docker-machine env --swarm swarm-master
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH="/home/ehazlett/.docker/machines/.client"
export DOCKER_HOST=tcp://192.168.99.100:3376
```
$ docker-machine env --swarm swarm-master
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH="/home/ehazlett/.docker/machines/.client"
export DOCKER_HOST=tcp://192.168.99.100:3376
You can load this into your environment using
`eval "$(docker-machine env --swarm swarm-master)"`.
Now you can use the Docker CLI to query:
```
$ docker info
Containers: 1
Nodes: 1
$ docker info
Containers: 1
Nodes: 1
swarm-master: 192.168.99.100:2376
└ Containers: 2
└ Reserved CPUs: 0 / 4
└ Reserved Memory: 0 B / 999.9 MiB
```

View File

@ -9,7 +9,6 @@ weight=1
+++
<![end-metadata]-->
# Get started with Docker Machine and a local VM
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
that none have been created so far.
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
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
@ -35,38 +32,31 @@ This command will download a lightweight Linux distribution
([boot2docker](https://github.com/boot2docker/boot2docker)) with the Docker
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
Creating client certificate: /home/username/.docker/machine/certs/cert.pem
Image cache does not exist, creating it at /home/username/.docker/machine/cache...
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...
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev
```
$ docker-machine create --driver virtualbox dev
Creating CA: /home/username/.docker/machine/certs/ca.pem
Creating client certificate: /home/username/.docker/machine/certs/cert.pem
Image cache does not exist, creating it at /home/username/.docker/machine/cache...
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...
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
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`
command again:
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev - virtualbox Running tcp://192.168.99.100:2376
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev - virtualbox Running tcp://192.168.99.100:2376
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
env` command. For example,
```
$ eval "$(docker-machine env dev)"
$ docker ps
```
$ eval "$(docker-machine env dev)"
$ docker ps
> **Note**: If you are using `fish`, or a Windows shell such as
> 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`.
```
$ docker-machine env dev
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://172.16.62.130:2376"
export DOCKER_CERT_PATH="/Users/<your username>/.docker/machine/machines/dev"
export DOCKER_MACHINE_NAME="dev"
# Run this command to configure your shell:
# eval "$(docker-machine env dev)"
```
$ docker-machine env dev
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://172.16.62.130:2376"
export DOCKER_CERT_PATH="/Users/<your username>/.docker/machine/machines/dev"
export DOCKER_MACHINE_NAME="dev"
# Run this command to configure your shell:
# eval "$(docker-machine env dev)"
You can now run Docker commands on this host:
```
$ docker run busybox echo hello world
Unable to find image 'busybox' locally
Pulling repository busybox
e72ac664f4f0: Download complete
511136ea3c5a: Download complete
df7546f9f060: Download complete
e433a6c5b276: Download complete
hello world
```
$ docker run busybox echo hello world
Unable to find image 'busybox' locally
Pulling repository busybox
e72ac664f4f0: Download complete
511136ea3c5a: Download complete
df7546f9f060: Download complete
e433a6c5b276: Download complete
hello world
Any exposed ports are available on the Docker hosts IP address, which you can
get using the `docker-machine ip` command:
```
$ docker-machine ip dev
192.168.99.100
```
$ docker-machine ip dev
192.168.99.100
For instance, you can try running a webserver ([nginx](https://www.nginx.com/) in a
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
IP address given to you by `docker-machine ip`. For instance:
```
$ curl $(docker-machine ip dev):8000
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
$ curl $(docker-machine ip dev):8000
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
```
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
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
@ -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`.
Make sure to specify the machine name as an argument:
```
$ docker-machine stop dev
$ docker-machine start dev
```
$ docker-machine stop dev
$ docker-machine start dev

View File

@ -8,7 +8,6 @@ parent="smn_workw_machine"
+++
<![end-metadata]-->
# Docker Machine
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
commands for managing them. Using these commands you can
- start, inspect, stop, and restart a host
- upgrade the Docker client and daemon
- configure a Docker client to talk to your host
- start, inspect, stop, and restart a host
- upgrade the Docker client and daemon
- configure a Docker client to talk to your host
### Looking for the installation docs?
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 installation instructions](install-machine.md).
@ -68,7 +67,7 @@ For more information and resources, please visit
## Where to go next
* Install a machine on your [local system using VirtualBox](get-started.md).
* Install multiple machines [on your cloud provider](get-started-cloud.md).
* [Docker Machine driver reference](drivers/index.md)
* [Docker Machine subcommand reference](reference/index.md)
- Install a machine on your [local system using VirtualBox](get-started.md).
- Install multiple machines [on your cloud provider](get-started-cloud.md).
- [Docker Machine driver reference](drivers/index.md)
- [Docker Machine subcommand reference](reference/index.md)

View File

@ -20,16 +20,16 @@ installation</a> instructions.
If you only want Docker Machine, you can install the Machine binaries (the
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.
## Installing Machine Directly
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
to your PATH.
to your PATH.
Linux:
@ -62,9 +62,9 @@ to your PATH.
The Machine repository supplies several `bash` scripts that add features such
as:
* command completion
* a function that displays the active machine in your shell prompt
* a function wrapper that adds a `docker-machine use` subcommand to switch the
- command completion
- a function that displays the active machine in your shell prompt
- a function wrapper that adds a `docker-machine use` subcommand to switch the
active machine
To install the scripts, copy or link them into your `/etc/bash_completion.d` or
@ -78,6 +78,6 @@ You can find additional documentation in the comments at the
## Where to go next
* [Docker Machine overview](index.md)
* [Docker Machine driver reference](drivers/index.md)
* [Docker Machine subcommand reference](reference/index.md)
- [Docker Machine overview](index.md)
- [Docker Machine driver reference](drivers/index.md)
- [Docker Machine subcommand reference](reference/index.md)

View File

@ -30,10 +30,10 @@ subcommands. The table below lists the equivalent `docker-machine` subcommand
and what it does:
| `boot2docker` | `docker-machine` | `docker-machine` description |
|----------------|------------------|----------------------------------------------------------|
| ------------- | ---------------- | --------------------------------------------------------------------------------- |
| init | create | Creates a new docker host. |
| 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. |
| down | stop | Stops a running machine. |
| poweroff | stop | Stops a running machine. |
@ -46,4 +46,3 @@ and what it does:
| delete | rm | Removes a machine. |
| download | - | Not applicable. |
| upgrade | upgrade | Upgrades a machine's Docker client to the latest stable release. |

View File

@ -13,13 +13,11 @@ parent="smn_machine_subcmds"
See which machine is "active" (a machine is considered active if the
`DOCKER_HOST` environment variable points to it).
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev - virtualbox Running tcp://192.168.99.103:2376
staging * digitalocean Running tcp://104.236.50.118:2376
$ echo $DOCKER_HOST
tcp://104.236.50.118:2376
$ docker-machine active
staging
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev - virtualbox Running tcp://192.168.99.103:2376
staging * digitalocean Running tcp://104.236.50.118:2376
$ echo $DOCKER_HOST
tcp://104.236.50.118:2376
$ docker-machine active
staging

View File

@ -12,7 +12,5 @@ parent="smn_machine_subcmds"
Show the Docker client configuration for a machine.
```
$ 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
```
$ 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

View File

@ -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
argument to indicate the name of the created machine.
```
$ docker-machine create --driver virtualbox dev
Creating CA: /home/username/.docker/machine/certs/ca.pem
Creating client certificate: /home/username/.docker/machine/certs/cert.pem
Image cache does not exist, creating it at /home/username/.docker/machine/cache...
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...
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev
```
$ docker-machine create --driver virtualbox dev
Creating CA: /home/username/.docker/machine/certs/ca.pem
Creating client certificate: /home/username/.docker/machine/certs/cert.pem
Image cache does not exist, creating it at /home/username/.docker/machine/cache...
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...
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev
## Accessing driver-specific flags in the help text
@ -36,16 +34,15 @@ drivers. These largely control aspects of Machine's provisoning process
(including the creation of Docker Swarm containers) that the user may wish to
customize.
```
$ docker-machine create
Docker Machine Version: 0.5.0 (45e3688)
Usage: docker-machine create [OPTIONS] [arg...]
$ docker-machine create
Docker Machine Version: 0.5.0 (45e3688)
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.
--engine-install-url "https://get.docker.com" Custom URL to use for engine installation [$MACHINE_DOCKER_INSTALL_URL]
@ -63,7 +60,6 @@ Options:
--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-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
plugin code. These allow users to customize the provider-specific parameters of
@ -73,15 +69,14 @@ geographical region (`--amazonec2-region us-west-1`), and so on.
To see the provider-specific flags, simply pass a value for `--driver` when
invoking the `create` help text.
```
$ docker-machine create --driver virtualbox --help
Usage: docker-machine create [OPTIONS] [arg...]
$ docker-machine create --driver virtualbox --help
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.
--engine-env [--engine-env option --engine-env option] Specify environment variables to set in the engine
@ -108,7 +103,6 @@ Options:
--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-no-share Disable the mount of your home directory
```
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
@ -139,14 +133,12 @@ filesystem has been created, and so on.
The following is an example usage:
```
$ docker-machine create -d virtualbox \
$ docker-machine create -d virtualbox \
--engine-label foo=bar \
--engine-label spam=eggs \
--engine-storage-driver overlay \
--engine-insecure-registry registry.myco.com \
foobarmachine
```
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
@ -154,20 +146,18 @@ 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
output of `docker info`:
```
$ eval $(docker-machine env foobarmachine)
$ docker info
Containers: 0
Images: 0
Storage Driver: overlay
...
Name: foobarmachine
...
Labels:
$ eval $(docker-machine env foobarmachine)
$ docker info
Containers: 0
Images: 0
Storage Driver: overlay
...
Name: foobarmachine
...
Labels:
foo=bar
spam=eggs
provider=virtualbox
```
The supported flags are as follows:
@ -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
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 log-driver=syslog \
gdns
```
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:
```
$ docker-machine create -d virtualbox \
$ docker-machine create -d virtualbox \
--engine-env HTTP_PROXY=http://example.com:8080 \
--engine-env HTTPS_PROXY=https://example.com:8080 \
--engine-env NO_PROXY=example2.com \
proxbox
```
## Specifying Docker Swarm options for the created machine
@ -225,15 +211,13 @@ you won't have to worry about it.
Example create:
```
$ docker-machine create -d virtualbox \
$ docker-machine create -d virtualbox \
--swarm \
--swarm-master \
--swarm-discovery token://<token> \
--swarm-strategy binpack \
--swarm-opt heartbeat=5 \
upbeat
```
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"

View File

@ -17,19 +17,17 @@ a particular machine.
run in a subshell. Running `docker-machine env -u` will print `unset` commands
which reverse this effect.
```
$ env | grep DOCKER
$ eval "$(docker-machine env dev)"
$ env | grep DOCKER
DOCKER_HOST=tcp://192.168.99.101:2376
DOCKER_CERT_PATH=/Users/nathanleclaire/.docker/machines/.client
DOCKER_TLS_VERIFY=1
DOCKER_MACHINE_NAME=dev
$ # If you run a docker command, now it will run against that host.
$ eval "$(docker-machine env -u)"
$ env | grep DOCKER
$ # The environment variables have been unset.
```
$ env | grep DOCKER
$ eval "$(docker-machine env dev)"
$ env | grep DOCKER
DOCKER_HOST=tcp://192.168.99.101:2376
DOCKER_CERT_PATH=/Users/nathanleclaire/.docker/machines/.client
DOCKER_TLS_VERIFY=1
DOCKER_MACHINE_NAME=dev
$ # If you run a docker command, now it will run against that host.
$ eval "$(docker-machine env -u)"
$ env | grep DOCKER
$ # The environment variables have been unset.
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
@ -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
values in the format which `fish` expects:
```
set -x DOCKER_TLS_VERIFY 1;
set -x DOCKER_CERT_PATH "/Users/nathanleclaire/.docker/machine/machines/overlay";
set -x DOCKER_HOST tcp://192.168.99.102:2376;
set -x DOCKER_MACHINE_NAME overlay
# Run this command to configure your shell:
# eval "$(docker-machine env overlay)"
```
set -x DOCKER_TLS_VERIFY 1;
set -x DOCKER_CERT_PATH "/Users/nathanleclaire/.docker/machine/machines/overlay";
set -x DOCKER_HOST tcp://192.168.99.102:2376;
set -x DOCKER_MACHINE_NAME overlay
# Run this command to configure your shell:
# eval "$(docker-machine env overlay)"
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
@ -56,26 +52,22 @@ options for using the `--shell` flag for `docker-machine env`.
For Powershell:
```
$ docker-machine.exe env --shell powershell dev
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.99.101:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\captain\.docker\machine\machines\dev"
$Env:DOCKER_MACHINE_NAME = "dev"
# Run this command to configure your shell:
# docker-machine.exe env --shell=powershell dev | Invoke-Expression
```
$ docker-machine.exe env --shell powershell dev
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.99.101:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\captain\.docker\machine\machines\dev"
$Env:DOCKER_MACHINE_NAME = "dev"
# Run this command to configure your shell:
# docker-machine.exe env --shell=powershell dev | Invoke-Expression
For `cmd.exe`:
```
$ docker-machine.exe env --shell cmd dev
set DOCKER_TLS_VERIFY=1
set DOCKER_HOST=tcp://192.168.99.101:2376
set DOCKER_CERT_PATH=C:\Users\captain\.docker\machine\machines\dev
set DOCKER_MACHINE_NAME=dev
# Run this command to configure your shell: copy and paste the above values into your command prompt
```
$ docker-machine.exe env --shell cmd dev
set DOCKER_TLS_VERIFY=1
set DOCKER_HOST=tcp://192.168.99.101:2376
set DOCKER_CERT_PATH=C:\Users\captain\.docker\machine\machines\dev
set DOCKER_MACHINE_NAME=dev
# Run this command to configure your shell: copy and paste the above values into your command prompt
## 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
required for internet access.
```
$ docker-machine env --no-proxy default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.104:2376"
export DOCKER_CERT_PATH="/Users/databus23/.docker/machine/certs"
export DOCKER_MACHINE_NAME="default"
export NO_PROXY="192.168.99.104"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"
```
$ docker-machine env --no-proxy default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.104:2376"
export DOCKER_CERT_PATH="/Users/databus23/.docker/machine/certs"
export DOCKER_MACHINE_NAME="default"
export NO_PROXY="192.168.99.104"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"
You may also want to visit the [documentation on setting `HTTP_PROXY` for the
created daemon using the `--engine-env` flag for `docker-machine

View File

@ -10,7 +10,7 @@ parent="smn_machine_subcmds"
# help
Usage: docker-machine help *subcommand*
Usage: docker-machine help _subcommand_
Show help text, for example:

View File

@ -9,25 +9,24 @@ parent="smn_machine_ref"
+++
<![end-metadata]-->
# Supported Docker Machine subcommands
* [active](active.md)
* [config](config.md)
* [create](create.md)
* [env](env.md)
* [help](help.md)
* [inspect](inspect.md)
* [ip](ip.md)
* [kill](kill.md)
* [ls](ls.md)
* [regenerate-certs](regenerate-certs.md)
* [restart](restart.md)
* [rm](rm.md)
* [scp](scp.md)
* [ssh](ssh.md)
* [start](start.md)
* [status](status.md)
* [stop](stop.md)
* [upgrade](upgrade.md)
* [url](url.md)
- [active](active.md)
- [config](config.md)
- [create](create.md)
- [env](env.md)
- [help](help.md)
- [inspect](inspect.md)
- [ip](ip.md)
- [kill](kill.md)
- [ls](ls.md)
- [regenerate-certs](regenerate-certs.md)
- [restart](restart.md)
- [rm](rm.md)
- [scp](scp.md)
- [ssh](ssh.md)
- [start](start.md)
- [status](status.md)
- [stop](stop.md)
- [upgrade](upgrade.md)
- [url](url.md)

View File

@ -11,17 +11,15 @@ parent="smn_machine_subcmds"
# 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.
Options:
Options:
--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
specified, the given template will be executed for each result.
@ -38,9 +36,8 @@ In addition to the `text/template` syntax, there are some additional functions,
This is the default usage of `inspect`.
```
$ docker-machine inspect dev
{
$ docker-machine inspect dev
{
"DriverName": "virtualbox",
"Driver": {
"MachineName": "docker-host-128be8d287b2028316c0ad5714b90bcfc11f998056f2f790f7c1f43f3d1e6eda",
@ -51,35 +48,29 @@ $ docker-machine inspect dev
"IPAddress": "192.168.5.99"
},
...
}
```
}
**Get a machine's IP address:**
For the most part, you can pick out any field from the JSON in a fairly
straightforward manner.
```
$ docker-machine inspect --format='{{.Driver.IPAddress}}' dev
192.168.5.99
```
$ docker-machine inspect --format='{{.Driver.IPAddress}}' dev
192.168.5.99
**Formatting details:**
If you want a subset of information formatted as JSON, you can use the `json`
function in the template.
```
$ 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}
```
$ 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}
While this is usable, it's not very human-readable. For this reason, there is
`prettyjson`:
```
$ docker-machine inspect --format='{{prettyjson .Driver}}' dev-fusion
{
$ docker-machine inspect --format='{{prettyjson .Driver}}' dev-fusion
{
"Boot2DockerURL": "",
"CPUS": 8,
"CPUs": 8,
@ -95,5 +86,4 @@ $ docker-machine inspect --format='{{prettyjson .Driver}}' dev-fusion
"SwarmDiscovery": "",
"SwarmHost": "tcp://0.0.0.0:3376",
"SwarmMaster": false
}
```
}

View File

@ -12,10 +12,8 @@ parent="smn_machine_subcmds"
Get the IP address of one or more machines.
```
$ docker-machine ip dev
192.168.99.104
$ docker-machine ip dev dev2
192.168.99.104
192.168.99.105
```
$ docker-machine ip dev
192.168.99.104
$ docker-machine ip dev dev2
192.168.99.104
192.168.99.105

View File

@ -13,12 +13,10 @@ parent="smn_machine_subcmds"
Kill (abruptly force stop) a machine.
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Running tcp://192.168.99.104:2376
$ docker-machine kill dev
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Stopped
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Running tcp://192.168.99.104:2376
$ docker-machine kill dev
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Stopped

View File

@ -10,16 +10,14 @@ parent="smn_machine_subcmds"
# ls
```
Usage: docker-machine ls [OPTIONS] [arg...]
Usage: docker-machine ls [OPTIONS] [arg...]
List machines
List machines
Options:
Options:
--quiet, -q Enable quiet mode
--filter [--filter option --filter option] Filter output based on conditions provided
```
## Filtering
@ -28,24 +26,20 @@ than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bi
The currently supported filters are:
* driver (driver name)
* swarm (swarm master's name)
* 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)
- driver (driver name)
- swarm (swarm master's name)
- 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)
## Examples
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev - virtualbox Stopped
foo0 - virtualbox Running tcp://192.168.99.105:2376
foo1 - virtualbox Running tcp://192.168.99.106:2376
foo2 * virtualbox Running tcp://192.168.99.107:2376
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev - virtualbox Stopped
foo0 - virtualbox Running tcp://192.168.99.105:2376
foo1 - virtualbox Running tcp://192.168.99.106:2376
foo2 * virtualbox Running tcp://192.168.99.107:2376
```
$ docker-machine ls --filter driver=virtualbox --filter state=Stopped
NAME ACTIVE DRIVER STATE URL SWARM
dev - virtualbox Stopped
```
$ docker-machine ls --filter driver=virtualbox --filter state=Stopped
NAME ACTIVE DRIVER STATE URL SWARM
dev - virtualbox Stopped

View File

@ -12,8 +12,6 @@ parent="smn_machine_subcmds"
Regenerate TLS certificates and update the machine with new certs.
```
$ docker-machine regenerate-certs dev
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
```
$ docker-machine regenerate-certs dev
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
Regenerating TLS certificates

View File

@ -14,7 +14,5 @@ parent="smn_machine_subcmds"
Restart a machine. Oftentimes this is equivalent to
`docker-machine stop; docker-machine start`.
```
$ docker-machine restart dev
Waiting for VM to start...
```
$ docker-machine restart dev
Waiting for VM to start...

View File

@ -14,13 +14,11 @@ parent="smn_machine_subcmds"
Remove a machine. This will remove the local reference as well as delete it
on the cloud provider or virtualization management platform.
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
foo0 - virtualbox Running tcp://192.168.99.105:2376
foo1 - virtualbox Running tcp://192.168.99.106:2376
$ docker-machine rm foo1
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
foo0 - virtualbox Running tcp://192.168.99.105:2376
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
foo0 - virtualbox Running tcp://192.168.99.105:2376
foo1 - virtualbox Running tcp://192.168.99.106:2376
$ docker-machine rm foo1
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
foo0 - virtualbox Running tcp://192.168.99.105:2376

View File

@ -18,17 +18,15 @@ machine's case, you don't have to specify the name, just the path.
Consider the following example:
```
$ cat foo.txt
cat: foo.txt: No such file or directory
$ docker-machine ssh dev pwd
/home/docker
$ docker-machine ssh dev 'echo A file created remotely! >foo.txt'
$ docker-machine scp dev:/home/docker/foo.txt .
foo.txt 100% 28 0.0KB/s 00:00
$ cat foo.txt
A file created remotely!
```
$ cat foo.txt
cat: foo.txt: No such file or directory
$ docker-machine ssh dev pwd
/home/docker
$ docker-machine ssh dev 'echo A file created remotely! >foo.txt'
$ docker-machine scp dev:/home/docker/foo.txt .
foo.txt 100% 28 0.0KB/s 00:00
$ cat foo.txt
A file created remotely!
Just like how `scp` has a `-r` flag for copying files recursively,
`docker-machine` has a `-r` flag for this feature.

View File

@ -14,8 +14,7 @@ Log into or run a command on a machine using SSH.
To login, just run `docker-machine ssh machinename`:
```
$ docker-machine ssh dev
$ docker-machine ssh dev
## .
## ## ## ==
## ## ## ## ===
@ -25,40 +24,35 @@ $ docker-machine ssh dev
\ \ __/
\____\______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.4.0, build master : 69cf398 - Fri Dec 12 01:39:42 UTC 2014
docker@boot2docker:~$ ls /
Users/ dev/ home/ lib/ mnt/ proc/ run/ sys/ usr/
bin/ etc/ init linuxrc opt/ root/ sbin/ tmp var/
```
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.4.0, build master : 69cf398 - Fri Dec 12 01:39:42 UTC 2014
docker@boot2docker:~$ ls /
Users/ dev/ home/ lib/ mnt/ proc/ run/ sys/ usr/
bin/ etc/ init linuxrc opt/ root/ sbin/ tmp var/
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 dev free
$ docker-machine ssh dev free
total used free shared buffers
Mem: 1023556 183136 840420 0 30920
-/+ buffers: 152216 871340
Swap: 1212036 0 1212036
```
Mem: 1023556 183136 840420 0 30920
-/+ buffers: 152216 871340
Swap: 1212036 0 1212036
Commands with flags will work as well:
```
$ docker-machine ssh dev df -h
Filesystem Size Used Available Use% Mounted on
rootfs 899.6M 85.9M 813.7M 10% /
tmpfs 899.6M 85.9M 813.7M 10% /
tmpfs 499.8M 0 499.8M 0% /dev/shm
/dev/sda1 18.2G 58.2M 17.2G 0% /mnt/sda1
cgroup 499.8M 0 499.8M 0% /sys/fs/cgroup
/dev/sda1 18.2G 58.2M 17.2G 0%
/mnt/sda1/var/lib/docker/aufs
```
$ docker-machine ssh dev df -h
Filesystem Size Used Available Use% Mounted on
rootfs 899.6M 85.9M 813.7M 10% /
tmpfs 899.6M 85.9M 813.7M 10% /
tmpfs 499.8M 0 499.8M 0% /dev/shm
/dev/sda1 18.2G 58.2M 17.2G 0% /mnt/sda1
cgroup 499.8M 0 499.8M 0% /sys/fs/cgroup
/dev/sda1 18.2G 58.2M 17.2G 0%
/mnt/sda1/var/lib/docker/aufs
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
@ -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
computer:
```
$ docker-machine ssh default -L 8080:localhost:8080
```
$ docker-machine ssh default -L 8080:localhost:8080
## 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
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
any issues or inconsistencies if you come across them.

View File

@ -13,7 +13,5 @@ parent="smn_machine_subcmds"
Start a machine.
```
$ docker-machine start dev
Starting VM...
```
$ docker-machine start dev
Starting VM...

View File

@ -12,7 +12,5 @@ parent="smn_machine_subcmds"
Get the status of a machine.
```
$ docker-machine status dev
Running
```
$ docker-machine status dev
Running

View File

@ -13,12 +13,10 @@ parent="smn_machine_subcmds"
Gracefully stop a machine.
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Running tcp://192.168.99.104:2376
$ docker-machine stop dev
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Stopped
```
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Running tcp://192.168.99.104:2376
$ docker-machine stop dev
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Stopped

View File

@ -19,14 +19,12 @@ 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
boot2docker ISO and replace the machine's existing ISO with the latest.
```
$ docker-machine upgrade dev
Stopping machine to do the upgrade...
Upgrading machine dev...
Downloading latest boot2docker release to /home/username/.docker/machine/cache/boot2docker.iso...
Starting machine back up...
Waiting for VM to start...
```
$ docker-machine upgrade dev
Stopping machine to do the upgrade...
Upgrading machine dev...
Downloading latest boot2docker release to /home/username/.docker/machine/cache/boot2docker.iso...
Starting machine back up...
Waiting for VM to start...
> **Note**: If you are using a custom boot2docker ISO specified using
> `--virtualbox-boot2docker-url` or an equivalent flag, running an upgrade on

View File

@ -12,7 +12,5 @@ parent="smn_machine_subcmds"
Get the URL of a host
```
$ docker-machine url dev
tcp://192.168.99.109:2376
```
$ docker-machine url dev
tcp://192.168.99.109:2376