diff --git a/machine/concepts.md b/machine/concepts.md index e67bf009ad..eb2ebb4366 100644 --- a/machine/concepts.md +++ b/machine/concepts.md @@ -42,6 +42,22 @@ subcommand outputs the configuration command you should use. For a complete list of `docker-machine` subcommands, see the [Docker Machine subcommand reference](reference/index.md). +## Custom root Certificate Authority for Registry + +Users using their own Docker Registry will experience `x509: certificate signed by unknown authority` +error messages if their registry is signed by custom root Certificate Authority and it is +not registered with Docker Engine. As discussed in the [Docker Engine documentation](https://docs.docker.com/engine/security/certificates/#/understanding-the-configuration) +certificates should be placed at `/etc/docker/certs.d/hostname/ca.crt` +where `hostname` is your Registry server's hostname. + +```console +docker-machine scp certfile default:ca.crt +docker-machine ssh default +sudo mv ~/ca.crt /etc/docker/certs.d/hostname/ca.crt +exit +docker-machine restart +``` + ## Crash Reporting Provisioning a host is a complex matter that can fail for a lot of reasons. Your diff --git a/machine/drivers/exoscale.md b/machine/drivers/exoscale.md index a954d66263..3a8d2e74c2 100644 --- a/machine/drivers/exoscale.md +++ b/machine/drivers/exoscale.md @@ -14,9 +14,11 @@ 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. +## Usage + $ docker-machine create --driver exoscale --exoscale-api-key=API --exoscale-api-secret-key=SECRET vm -Options: +## Options - `--exoscale-url`: Your API endpoint. - `--exoscale-api-key`: **required** Your API key. @@ -34,7 +36,7 @@ If a custom security group is provided, you need to ensure that you allow TCP po There is a limit to the number of docker machines that an anti-affinity group can have. This can be worked around by specifying an additional anti-affinity group using `--exoscale-affinity-group=docker-machineX` -Environment variables and default values: +### Environment variables and default values | CLI option | Environment variable | Default | | ------------------------------- | ---------------------------- | --------------------------------- | diff --git a/machine/drivers/hyper-v.md b/machine/drivers/hyper-v.md index 38262f9394..d5d9828819 100644 --- a/machine/drivers/hyper-v.md +++ b/machine/drivers/hyper-v.md @@ -28,7 +28,7 @@ Hyper-V](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick > If you would like to use NAT, create an internal network, and use > [Internet Connection Sharing](http://www.packet6.com/allowing-windows-8-1-hyper-v-vm-to-work-with-wifi/). > -> * This reference page includes an [example](hyper-v.md#example) that shows how to use an elelvated (Administrator-level) PowerShell and how to create and use an external network switch. +> * This reference page includes an [example](hyper-v.md#example) that shows how to use an elevated (Administrator-level) PowerShell and how to create and use an external network switch. ## Usage diff --git a/machine/get-started-cloud.md b/machine/get-started-cloud.md index efa7062617..96e822ac84 100644 --- a/machine/get-started-cloud.md +++ b/machine/get-started-cloud.md @@ -66,7 +66,7 @@ See Docker Machine driver reference fo You can add a host to Docker which only has a URL and no driver. Then you can use the machine name you provide here for an existing host so you don’t 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 create --driver none --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 diff --git a/machine/overview.md b/machine/overview.md index 4cfb05636d..23293c2898 100644 --- a/machine/overview.md +++ b/machine/overview.md @@ -25,17 +25,23 @@ Using `docker-machine` commands, you can start, inspect, stop, and restart a man Point the Machine CLI at a running, managed host, and you can run `docker` commands directly on that host. For example, run `docker-machine env default` to point to a host called `default`, follow on-screen instructions to complete `env` setup, and run `docker ps`, `docker run hello-world`, and so forth. +Machine _was_ the _only_ way to run Docker on Mac or Windows previous to Docker v1.12. Starting with the beta program and Docker v1.12, [Docker for Mac](/docker-for-mac/index.md) and [Docker for Windows](/docker-for-windows/index.md) are available as native apps and the better choice for this use case on newer desktops and laptops. We encourage you to try out these new apps. The installers for Docker for Mac and Docker for Windows include Docker Machine, along with Docker Compose. + +If you aren't sure where to begin, see [Get Started with Docker](/engine/getstarted/index.md), which helps you choose the right app for your system and guides you through a brief end-to-end tutorial on Docker. + ## Why should I use it? -Machine is currently the only way to run Docker on Mac or Windows, and the best way to provision multiple remote Docker hosts on various flavors of Linux. +Docker Machine enables you to provision multiple remote Docker hosts on various flavors of Linux. + +Additionally, Machine allows you to run Docker on older Mac or Windows systems, as described in the previous topic. Docker Machine has these two broad use cases. -* **I want to run Docker on Mac or Windows** +* **I have an older desktop system and want to run Docker on Mac or Windows** ![Docker Machine on Mac and Windows](img/machine-mac-win.png) - If you work primarily on a Mac or Windows laptop or desktop, you need Docker Machine in order to "run Docker" (that is, Docker Engine) locally. Installing Docker Machine on a Mac or Windows box provisions a local virtual machine with Docker Engine, gives you the ability to connect it, and run `docker` commands. + If you work primarily on an older Mac or Windows laptop or desktop that doesn't meet the requirements for the new [Docker for Mac](/docker-for-mac/index.md) and [Docker for Windows](/docker-for-windows/index.md) apps, then you need Docker Machine in order to "run Docker" (that is, Docker Engine) locally. Installing Docker Machine on a Mac or Windows box with the [Docker Toolbox](/toolbox/overview.md) installer provisions a local virtual machine with Docker Engine, gives you the ability to connect it, and run `docker` commands. * **I want to provision Docker hosts on remote systems** diff --git a/machine/reference/env.md b/machine/reference/env.md index fa0e8d0b40..8d50cae75f 100644 --- a/machine/reference/env.md +++ b/machine/reference/env.md @@ -68,11 +68,11 @@ set -x DOCKER_MACHINE_NAME overlay # eval "$(docker-machine env overlay)" ``` -If you are on Windows and using either Powershell or `cmd.exe`, `docker-machine env` +If you are on Windows and using either PowerShell or `cmd.exe`, `docker-machine env` Docker Machine should now detect your shell automatically. If the automagic detection does not work you can still override it using the `--shell` flag for `docker-machine env`. -For Powershell: +For PowerShell: ```none $ docker-machine.exe env --shell powershell dev