1
0
mirror of https://github.com/docker/docs.git synced 2026-10-29 20:39:05 +03:00

Merge branch '2019-08-patch-release-notes' into 2019-08-patch-release-notes-augustcommits

This commit is contained in:
Olly P
2019-08-29 15:21:30 +01:00
committed by GitHub
63 changed files with 720 additions and 532 deletions

View File

@@ -7,7 +7,7 @@ help. If a reviewer realizes you have based your work on the wrong branch, we'll
let you know so that you can rebase it.
>**Note**: To contribute code to Docker projects, see the
[Contribution guidelines](opensource/).
[Contribution guidelines](/opensource/).
### Files not edited here
@@ -121,5 +121,5 @@ know.
## Style guide
Docker does not currently maintain a style guide. Use your best judgment, and
Docker does not currently maintain a style guide. Use your best judgment, and
try to follow the example set by the existing documentation.

View File

@@ -6,6 +6,30 @@ Welcome to the repo for our documentation. This is the source for
Feel free to send us pull requests and file issues. Our docs are completely
open source and we deeply appreciate contributions from our community!
## Table of Contents
- [Providing feedback](#providing-feedback)
- [Contributing](#contributing)
- [Files not edited here](#files-not-edited-here)
- [Overall doc improvements](#overall-doc-improvements)
- [Specific new features for a project](#specific-new-features-for-a-project)
- [Per-PR staging on GitHub](#per-pr-staging-on-github)
- [Staging the docs](#staging-the-docs)
- [Read these docs offline](#read-these-docs-offline)
- [Important files](#important-files)
- [Relative linking for GitHub viewing](#relative-linking-for-github-viewing)
- [Testing changes and practical guidance](#testing-changes-and-practical-guidance)
- [Per-page front-matter](#per-page-front-matter)
- [Creating tabs](#creating-tabs)
- [Running in-page Javascript](#running-in-page-javascript)
- [Images](#images)
- [Beta content disclaimer](#beta-content-disclaimer)
- [Accessing unsupported archived documentation](#accessing-unsupported-archived-documentation)
- [Building archives and the live published docs](#building-archives-and-the-live-published-docs)
- [Creating a new archive](#creating-a-new-archive)
- [Copyright and license](#copyright-and-license)
## Providing feedback
We really want your feedback, and we've made it easy. You can edit a page or

View File

@@ -2870,25 +2870,25 @@ manuals:
path: /datacenter/dtr/2.6/guides/admin/disaster-recovery/restore-from-backup/
- sectiontitle: CLI Reference
section:
- path: /reference/dtr/2.6/cli/
- path: /datacenter/dtr/2.6/reference/cli/
title: Overview
- path: /reference/dtr/2.6/cli/backup/
- path: /datacenter/dtr/2.6/reference/cli/backup/
title: backup
- path: /reference/dtr/2.6/cli/destroy/
- path: /datacenter/dtr/2.6/reference/cli/destroy/
title: destroy
- path: /reference/dtr/2.6/cli/emergency-repair/
- path: /datacenter/dtr/2.6/reference/cli/emergency-repair/
title: emergency-repair
- path: /reference/dtr/2.6/cli/install/
- path: /datacenter/dtr/2.6/reference/cli/install/
title: install
- path: /reference/dtr/2.6/cli/join/
- path: /datacenter/dtr/2.6/reference/cli/join/
title: join
- path: /reference/dtr/2.6/cli/reconfigure/
- path: /datacenter/dtr/2.6/reference/cli/reconfigure/
title: reconfigure
- path: /reference/dtr/2.6/cli/remove/
- path: /datacenter/dtr/2.6/reference/cli/remove/
title: remove
- path: /reference/dtr/2.6/cli/restore/
- path: /datacenter/dtr/2.6/reference/cli/restore/
title: restore
- path: /reference/dtr/2.6/cli/upgrade/
- path: /datacenter/dtr/2.6/reference/cli/upgrade/
title: upgrade
- sectiontitle: User guides
section:

View File

@@ -45,9 +45,7 @@ Usage: {% include kubernetes-mac-win.md platform="mac" %}
{% endif %}
{{ version-caveat }}
{{ min-version }} includes a standalone Kubernetes server and client,
Docker Desktop includes a standalone Kubernetes server and client,
as well as Docker CLI integration. The Kubernetes server runs locally within
your Docker instance, is not configurable, and is a single-node cluster.

View File

@@ -16,7 +16,7 @@ This topic discusses working with docker clusters in AWS, including how to:
## Prerequisites
- Completed installation of [Docker Desktop Enterprise](../ee/desktop/).
- Completed installation of [Docker Desktop Enterprise](../ee/desktop/) on Windows or Mac, or the [Docker CLI](https://docs.docker.com/ee/supported-platforms/) on Linux.
- [Access keys](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) to an AWS subscription. You can provide these credentials in many ways, but the recommended way is to create an `~/.aws/credentials` file. Refer to [AWS CLI configuration](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) for details on creating one.
## Create a cluster

View File

@@ -1298,7 +1298,7 @@ then read-write is used.
### cpu_count, cpu_percent, cpu\_shares, cpu\_period, cpu\_quota, cpus, cpuset, domainname, hostname, ipc, mac\_address, mem\_limit, memswap\_limit, mem\_swappiness, mem\_reservation, oom_kill_disable, oom_score_adj, privileged, read\_only, shm\_size, stdin\_open, tty, user, working\_dir
Each of these is a single value, analogous to its
[docker run](/engine/reference/run.md) counterpart.
[docker run](/engine/reference/run.md#runtime-constraints-on-resources) counterpart.
> **Note**: The following options were added in [version 2.2](compose-versioning.md#version-22):
> `cpu_count`, `cpu_percent`, `cpus`.

View File

@@ -12,7 +12,7 @@ Compose is a tool for defining and running multi-container Docker applications.
With Compose, you use a YAML file to configure your application's services.
Then, with a single command, you create and start all the services
from your configuration. To learn more about all the features of Compose,
see [the list of features](overview.md#features).
see [the list of features](#features).
Compose works in all environments: production, staging, development, testing, as
well as CI workflows. You can learn more about each case in [Common Use

View File

@@ -46,8 +46,8 @@ If you are using Docker Compose, set `awslogs` using the following declaration e
myservice:
logging:
driver: awslogs
options:
awslogs-region: us-east-1
options:
awslogs-region: us-east-1
```
## Amazon CloudWatch Logs options

View File

@@ -35,7 +35,7 @@ logging driver to `syslog`:
```
If the logging driver has configurable options, you can set them in the
`daemon.json` file as a JSON array with the key `log-opts`. The following
`daemon.json` file as a JSON object with the key `log-opts`. The following
example sets two configurable options on the `json-file` logging driver:
```json

View File

@@ -20,13 +20,13 @@ only one container.
## Usage
To use the `json-file` driver as the default logging driver, set the `log-driver`
and `log-opt` keys to appropriate values in the `daemon.json` file, which is
and `log-opts` keys to appropriate values in the `daemon.json` file, which is
located in `/etc/docker/` on Linux hosts or
`C:\ProgramData\docker\config\daemon.json` on Windows Server. For more information about
`C:\ProgramData\docker\config\` on Windows Server. For more information about
configuring Docker using `daemon.json`, see
[daemon.json](/engine/reference/commandline/dockerd.md#daemon-configuration-file).
The following example sets the log driver to `json-file` and sets the `max-size` and 'max-file' options.
The following example sets the log driver to `json-file` and sets the `max-size` and `max-file` options.
```json
{
@@ -37,7 +37,7 @@ The following example sets the log driver to `json-file` and sets the `max-size`
}
}
```
**Note**: `log-opt` configuration options in the `daemon.json` configuration
**Note**: `log-opts` configuration options in the `daemon.json` configuration
file must be provided as strings. Boolean and numeric values (such as the value
for `max-file` in the example above) must therefore be enclosed in quotes (`"`).

View File

@@ -22,8 +22,9 @@ For more information on build options, see the reference guide on the [command l
## Limitations
* BuildKit mode is incompatible with UCP and Swarm Classic
* Only supported for building Linux containers
* BuildKit mode is compatible with UCP 3.2 or newer
* BuildKit mode is incompatible with Swarm Classic
## To enable buildkit builds

View File

@@ -226,12 +226,12 @@ repository does not contain a `Dockerfile`, or if you want to build with a custo
`Dockerfile`, without maintaining your own fork of the repository.
The example below builds an image using a `Dockerfile` from `stdin`, and adds
the `README.md` file from the ["hello-world" Git repository on GitHub](https://github.com/docker-library/hello-world).
the `hello.c` file from the ["hello-world" Git repository on GitHub](https://github.com/docker-library/hello-world).
```bash
docker build -t myimage:latest -f- https://github.com/docker-library/hello-world.git <<EOF
FROM busybox
COPY README.md .
COPY hello.c .
EOF
```

View File

@@ -41,7 +41,7 @@ package main
import (
"os"
"io"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/pkg/stdcopy"

View File

@@ -180,13 +180,14 @@ Docker API directly, or using the Python or Go SDK.
package main
import (
"context"
"os"
"context"
"io"
"os"
"github.com/docker/docker/client"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/client"
"github.com/docker/docker/pkg/stdcopy"
)
func main() {

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -16,41 +16,142 @@ automatically select an image variant which matches your OS and architecture.
Most of the official images on Docker Hub provide a [variety of architectures](https://github.com/docker-library/official-images#architectures-other-than-amd64).
For example, the `busybox` image supports `amd64`, `arm32v5`, `arm32v6`,
`arm32v7`, `arm64v8`, `i386`, `ppc64le`, and `s390x`. When running this image
on an `x86_64` / `amd64` machine, the `x86_64` variant will be pulled and run,
which can be seen from the output of the `uname -a` command that's run inside
the container:
on an `x86_64` / `amd64` machine, the `x86_64` variant will be pulled and run.
```bash
$ docker run busybox uname -a
Linux 82ef1a0c07a2 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 GNU/Linux
```
**Docker Desktop for Mac** provides `binfmt_misc` multi-architecture support,
**Docker Desktop** provides `binfmt_misc` multi-architecture support,
which means you can run containers for different Linux architectures
such as `arm`, `mips`, `ppc64le`, and even `s390x`.
This does not require any special configuration in the container itself as it uses
<a href="http://wiki.qemu.org/" target="_blank">qemu-static</a> from the **Docker for
Mac VM**. Because of this, you can run an ARM container, like the `arm32v7` or `ppc64le`
variants of the busybox image:
variants of the busybox image.
## Buildx (Experimental)
Docker is now making it easier than ever to develop containers on, and for Arm servers and devices. Using the standard Docker tooling and processes, you can start to build, push, pull, and run images seamlessly on different compute architectures. Note that you don't have to make any changes to Dockerfiles or source code to start building for Arm.
Docker introduces a new CLI command called `buildx`. You can use the `buildx` command on Docker Desktop for Mac and Windows to build multi-arch images, link them together with a manifest file, and push them all to a registry using a single command. With the included emulation, you can transparently build more than just native images. Buildx accomplishes this by adding new builder instances based on BuildKit, and leveraging Docker Desktop's technology stack to run non-native binaries.
For more information about the Buildx CLI command, see [Buildx](/buildx/working-with-buildx/).
### Install
1. Download the latest version of [Docker Desktop](https://hub.docker.com/?overlay=onboarding).
1. Follow the on-screen instructions to complete the installation process. After you have successfully installed Docker Desktop, you will see the Docker icon in your task tray.
1. Click **About Docker Desktop** from the Docker menu and ensure you have installed Docker Desktop version 2.0.4.0 (33772) or higher.
![about-docker-desktop-buildx](./images/desktop-buildx-version.png)
### Build and run multi-architecture images
Run the command `docker buildx ls` to list the existing builders. This displays the default builder, which is our old builder.
### arm32v7 variant
```bash
$ docker run arm32v7/busybox uname -a
$ docker buildx ls
Linux 9e3873123d09 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 armv7l GNU/Linux
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6
```
### ppc64le variant
```bash
$ docker run ppc64le/busybox uname -a
Create a new builder which gives access to the new multi-architecture features.
Linux 57a073cc4f10 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 ppc64le GNU/Linux
```bash
$ docker buildx create --name mybuilder
mybuilder
```
Notice that this time, the `uname -a` output shows `armv7l` and
`ppc64le` respectively.
Alternatively, run `docker buildx create --name mybuilder --use` to create a new builder and switch to it using a single command.
Multi-architecture support makes it easy to build <a href="https://blog.docker.com/2017/11/multi-arch-all-the-things/" target="_blank">multi-architecture Docker images</a> or experiment with ARM images and binaries from your Mac.
Switch to the new builder and inspect it.
```bash
$ docker buildx use mybuilder
$ docker buildx inspect --bootstrap
[+] Building 2.5s (1/1) FINISHED
=> [internal] booting buildkit 2.5s
=> => pulling image moby/buildkit:master 1.3s
=> => creating container buildx_buildkit_mybuilder0 1.2s
Name: mybuilder
Driver: docker-container
Nodes:
Name: mybuilder0
Endpoint: unix:///var/run/docker.sock
Status: running
Platforms: linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6
```
Test the workflow to ensure you can build, push, and run multi-architecture images. Create a simple example Dockerfile, build a couple of image variants, and push them to Docker Hub.
```bash
$ mkdir test && cd test && cat <<EOF > Dockerfile
FROM ubuntu
RUN apt-get update && apt-get install -y curl
WORKDIR /src
COPY . .
EOF
```
```bash
$ docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t username/demo:latest --push .
[+] Building 6.9s (19/19) FINISHED
...
=> => pushing layers 2.7s
=> => pushing manifest for docker.io/username/demo:latest 2.2
```
Where, `username` is a valid Docker username.
> **Notes:**
>
> - The `--platform` flag informs buildx to generate Linux images for AMD 64-bit, Arm 64-bit, and Armv7 architectures.
> - The `--push` flag generates a multi-arch manifest and pushes all the images to Docker Hub.
Inspect the image using `imagetools`.
```bash
$ docker buildx imagetools inspect username/demo:latest
Name: docker.io/username/demo:latest
MediaType: application/vnd.docker.distribution.manifest.list.v2+json
Digest: sha256:2a2769e4a50db6ac4fa39cf7fb300fa26680aba6ae30f241bb3b6225858eab76
Manifests:
Name: docker.io/username/demo:latest@sha256:8f77afbf7c1268aab1ee7f6ce169bb0d96b86f585587d259583a10d5cd56edca
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/amd64
Name: docker.io/username/demo:latest@sha256:2b77acdfea5dc5baa489ffab2a0b4a387666d1d526490e31845eb64e3e73ed20
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/arm64
Name: docker.io/username/demo:latest@sha256:723c22f366ae44e419d12706453a544ae92711ae52f510e226f6467d8228d191
MediaType: application/vnd.docker.distribution.manifest.v2+json
Platform: linux/arm/v7
```
The image is now available on Docker Hub with the tag `username/demo:latest`. You can use this image to run a container on Intel laptops, Amazon EC2 A1 instances, Raspberry Pis, and on other architectures. Docker pulls the correct image for the current architecture, so Raspberry Pis run the 32-bit Arm version and EC2 A1 instances run 64-bit Arm. The SHA tags identify a fully qualified image variant. You can also run images targeted for a different architecture on Docker Desktop.
You can run the images using the SHA tag, and verify the architecture. For example, when you run the following on a macOS:
```bash
$ docker run --rm docker.io/username/demo:latest@sha256:2b77acdfea5dc5baa489ffab2a0b4a387666d1d526490e31845eb64e3e73ed20 uname -m
aarch64
```
```bash
$ docker run --rm docker.io/username/demo:latest@sha256:723c22f366ae44e419d12706453a544ae92711ae52f510e226f6467d8228d191 uname -m
armv7l
```
In the above example, `uname -m` returns `aarch64` and `armv7l` as expected, even when running the commands on a native macOS developer machine.

View File

@@ -7,10 +7,7 @@ title: Migrate Docker Toolbox
This page explains how to migrate your Docker Toolbox disk image, or images if
you have them, to Docker Desktop for Windows.
In version 18.01.0 and higher, the Docker Desktop for Windows installer no longer
prompts users to migrate from Docker Toolbox--you must do so manually.
## How to migrate Docker Toolbox disk images to Docker Desktop for Windows
## How to migrate Docker Toolbox disk images to Docker Desktop
> **Warning**: Migrating disk images from Docker Toolbox _clobbers_ Docker
> images if they exist. The migration process replaces the entire VM with your
@@ -18,7 +15,7 @@ prompts users to migrate from Docker Toolbox--you must do so manually.
1. Install [qemu](https://www.qemu.org/){: target="_blank" class="_"} (a machine emulator): [https://cloudbase.it/downloads/qemu-img-win-x64-2_3_0.zip](https://cloudbase.it/downloads/qemu-img-win-x64-2_3_0.zip).
2. Install [Docker Desktop for Windows](install/){: target="_blank" class="_"}.
3. Stop Docker Desktop for Windows, if running.
3. Stop Docker Desktop, if running.
4. Move your current Docker VM disk to a safe location:
```shell
@@ -31,7 +28,7 @@ prompts users to migrate from Docker Toolbox--you must do so manually.
qemu-img.exe convert 'C:\Users\<username>\.docker\machine\machines\default\disk.vmdk' -O vhdx -o subformat=dynamic -p 'C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\MobyLinuxVM.vhdx'
```
6. Restart Docker Desktop for Windows (with your converted disk).
6. Restart Docker Desktop (with your converted disk).
## How to uninstall Docker Toolbox

View File

@@ -10,55 +10,41 @@ for knowledge base articles, FAQs, technical support for subscription levels, an
## Questions about Stable and Edge channels
### How do I get the Stable or Edge version of Docker Desktop for Windows?
### How do I get the Stable or Edge version of Docker Desktop?
Use the download links for the channels given in the topic
[Download Docker Desktop for Windows](install#download-docker-for-windows).
This topic also has more information about the two channels.
### What is the difference between the Stable and Edge versions of Docker Desktop for Windows?
### What is the difference between the Stable and Edge versions of Docker Desktop?
Two different download channels are available for Docker Desktop for Windows:
Two different download channels are available for Docker Desktop:
* The **Stable channel** provides a general availability release-ready installer
for a fully baked and tested, more reliable app. The Stable version of Docker
Desktop for Windows comes with the latest released version of Docker Engine. The
Desktop includes the latest released version of Docker Engine. The
release schedule is synced with Docker Engine releases and hotfixes. On the
Stable channel, you can select whether to send usage statistics and other data.
* The **Edge channel** provides an installer with new features we are working on,
but is not necessarily fully tested. It comes with the experimental version of
Docker Engine. Bugs, crashes, and issues are more likely to occur with the Edge
app, but you get a chance to preview new functionality, experiment, and provide
feedback as the apps evolve. Releases are typically more frequent than for
Stable, often one or more per month. Usage statistics and crash reports are
sent by default. You do not have the option to disable this on the Edge channel.
* The **Edge channel** provides an installer with new features we are working on, but is not necessarily fully tested. It includes the experimental version of
Docker Engine. Bugs, crashes, and issues can occur when using the Edge version, but you get a chance to preview new functionality, experiment, and provide feedback as the apps evolve. Edge releases are typically more frequent than for Stable, often one or more per month. Usage statistics and crash reports are sent by default. You do not have the option to disable this on the Edge channel.
### Can I switch back and forth between Stable and Edge versions of Docker Desktop for Windows?
### Can I switch back and forth between Stable and Edge versions of Docker Desktop?
Yes, you can switch between versions to try out the Edge release to see what's
new, then go back to Stable for other work. However, **you can have only one app
installed at a time**. Switching back and forth between Stable and Edge apps can
destabilize your development environment, particularly in cases where you switch
from a newer (Edge) channel to older (Stable).
from a newer (Edge) channel to older version (Stable).
For example, containers created with a newer Edge version of Docker Desktop for Windows
may not work after you switch back to Stable because they may have been created
leveraging Edge features that aren't in Stable yet. Just keep this in mind as
you create and work with Edge containers, perhaps in the spirit of a playground
space where you are prepared to troubleshoot or start over.
For example, containers created with a newer Edge version of Docker Desktop may not work after you switch back to Stable because they may have been created using Edge features that aren't in Stable yet. Just keep this in mind as you create and work with Edge containers, perhaps in the spirit of a playground space where you are prepared to troubleshoot or start over.
<font color="#CC3366">To safely switch between Edge and Stable versions be sure
to save images and export the containers you need, then uninstall the current
version before installing another. The workflow is described in more detail
below.</font><br>
To safely switch between Edge and Stable versions, ensure that you save images and export the containers you need, then uninstall the current version before installing another. The workflow is described in detail in the following section.
### How to save and restore data
The following procedure can be used to save/restore images and container data,
for example, if you want to switch between Edge and Stable, or reset your VM
disk:
You can use the following procedure to save and restore images and container data, for example, if you want to switch between Edge and Stable, or reset your VM disk:
1. Use `docker save -o images.tar image1 [image2 ...]` to save any images you
want to keep. (See [save](/engine/reference/commandline/save) in the Docker
@@ -68,15 +54,14 @@ disk:
want to keep. (See [export](/engine/reference/commandline/export) in the
Docker Engine command line reference.)
3. Uninstall the current app & Install a different version of the app (Stable
or Edge), or reset your VM disk.
3. Uninstall the current version of Docker Desktop and install a different version (Stable or Edge), or reset your VM disk.
5. Use `docker load -i images.tar` to reload previously saved images. (See
[load](/engine/reference/commandline/load) in the Docker Engine
[load](/engine/reference/commandline/load) in the Docker Engine.
6. Use `docker import -i myContainer1.tar` to create a filesystem image
corresponding to previously exported containers. (See
[import](/engine/reference/commandline/import) in the Docker Engine
[import](/engine/reference/commandline/import) in the Docker Engine.
[This
procedure](https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes)
@@ -84,25 +69,24 @@ explains how to backup and restore data volumes.
## Experimental features
{% include experimental-feature.md %}
{% include experimental.md %}
## Feedback
### What kind of feedback are we looking for?
Everything is fair game. We'd like your impressions on the download-install
Everything is a fair game. We'd like your impressions on the download-install
process, startup, functionality available, the GUI, usefulness of the app,
command line integration, and so on. Tell us about problems, what you like, or
functionality you'd like to see added.
We are especially interested in getting feedback on the new swarm mode described
We are especially interested in getting feedback on the swarm mode described
in [Docker Swarm](/engine/swarm/). A good place to start is the
[tutorial](/engine/swarm/swarm-tutorial/).
### What if I have problems or questions?
You can find the list of frequent issues in
[Logs and Troubleshooting](troubleshoot).
You can find information about diagnosing and troubleshooting common issues in the [Logs and Troubleshooting](troubleshoot) section.
If you do not find a solution in Troubleshooting, browse issues on
[Docker Desktop for Windows issues on GitHub](https://github.com/docker/for-win/issues){: target="_blank" class="_"}
@@ -111,39 +95,34 @@ learn more about running diagnostics and about Docker Desktop for Windows GitHub
see [Diagnose and Feedback](/docker-for-windows#diagnose--feedback).
[Docker Desktop for Windows forum](https://forums.docker.com/c/docker-for-windows){: target="_blank" class="_"}
provides discussion threads as well, and you can create discussion topics there,
contains discussion threads. You can also create discussion topics there,
but we recommend using the GitHub issues over the forums for better tracking and
response.
### How can I opt out of sending my usage data?
If you do not want auto-send of usage data, use the Stable channel. For more
information, see [Stable and Edge channels](#questions-about-stable-and-edge-channels) ("What is the difference between the Stable and Edge versions of Docker Desktop for Windows?").
If you do not want to send usage data, use the Stable channel. For more
information, see [Stable and Edge channels](#questions-about-stable-and-edge-channels) ("What is the difference between the Stable and Edge versions of Docker Desktop?").
### How is personal data handled in Docker Desktop?
When uploading diagnostics to help Docker with investigating issues, the
uploaded diagnostics bundle may contain personal data such as usernames and IP
addresses. The diagnostics bundles are only accessible to Docker Inc. employees
who are directly involved in diagnosing Docker Desktop issues. By default Docker
Inc. will delete uploaded diagnostics bundles after 30 days unless they are
referenced in an open issue on the
who are directly involved in diagnosing Docker Desktop issues. By default, Docker Inc. will delete uploaded diagnostics bundles after 30 days unless they are referenced in an open issue on the
[docker/for-mac](https://github.com/docker/for-mac/issues) or
[docker/for-win](https://github.com/docker/for-win/issues) issue trackers. If an
issue is closed, Docker Inc. will remove the referenced diagnostics bundles
within 30 days. You may also request the removal of a diagnostics bundle by
either specifying the diagnostics ID or via your GitHub ID (if the diagnostics
ID is mentioned in a GitHub issue). Docker Inc. will only use the data in the
diagnostics bundle to investigate specific user issues, but may derive high
level (non personal) metrics such as the rate of issues from it.
either specifying the diagnostics ID or through your GitHub ID (if the diagnostics ID is mentioned in a GitHub issue). Docker Inc. will only use the data in the diagnostics bundle to investigate specific user issues, but may derive high-level (non-personal) metrics such as the rate of issues from it.
### Can I use Docker Desktop for Windows with new swarm mode?
### Can I use Docker Desktop with the Swarm mode?
Yes! You can use Docker Desktop for Windows to test single-node features of
Yes! You can use Docker Desktop to test single-node features of
[swarm mode](/engine/swarm/) introduced with Docker Engine 1.12, including
initializing a swarm with a single node, creating services, and scaling
services. Docker “Moby” on Hyper-V serves as the single swarm node. You can also
use Docker Machine, which comes with Docker Desktop for Windows, to create and
use Docker Machine, which is bundled with Docker Desktop, to create and
experiment with a multi-node swarm. Check out the tutorial at
[Get started with swarm mode](/engine/swarm/swarm-tutorial/).
@@ -151,22 +130,20 @@ experiment with a multi-node swarm. Check out the tutorial at
You might need to provide the location of the Engine API for Docker clients and development tools.
On Docker Desktop for Windows, clients can connect to the Docker Engine through a
On Docker Desktop, clients can connect to the Docker Engine through a
**named pipe**: `npipe:////./pipe/docker_engine`, or **TCP socket** at this URL:
`tcp://localhost:2375`.
This sets `DOCKER_HOST` and `DOCKER_CERT_PATH` environment variables to the
given values (for the named pipe or TCP socket, whichever you use).
See also [Docker Engine API](/engine/api) and the Docker Desktop for Windows forums
topic
[How to find the remote API](https://forums.docker.com/t/how-to-find-the-remote-api/20988){: target="_blank" class="_"}.
See also [Docker Engine API](/engine/api) and the Docker Desktop for Windows forums topic [How to find the remote API](https://forums.docker.com/t/how-to-find-the-remote-api/20988){: target="_blank" class="_"}.
## Volumes
### Can I change permissions on shared volumes for container-specific deployment requirements?
No, at this point, Docker Desktop for Windows does not enable you to control (`chmod`)
No, at this point, Docker Desktop does not enable you to control (`chmod`)
the Unix-style permissions on [shared volumes](/docker-for-windows#shared-drives) for
deployed containers, but rather sets permissions to a default value of
[0777](http://permissions-calculator.org/decode/0777/){: target="_blank" class="_"}
@@ -178,16 +155,15 @@ For workarounds and to learn more, see
### Why doesn't `nodemon` pick up file changes in a container mounted on a shared drive?
Currently, `inotify` does not work on Docker Desktop for Windows. This is a known issue.
Currently, `inotify` does not work on Docker Desktop. This is a known issue.
For more information and a temporary workaround, see
[inotify on shared drives does not work](troubleshoot#inotify-on-shared-drives-does-not-work){: target="_blank" class="_"}
in [Troubleshooting](troubleshoot).
### Are symlinks supported?
Docker Desktop for Windows supports symbolic links (symlinks) created within containers.
Symlinks resolve within and across containers.
Symlinks created outside of Docker do not work.
Docker Desktop supports symbolic links (symlinks) created within containers.
Symlinks resolve within and across containers. Symlinks created outside of Docker do not work.
To learn more about the reasons for this limitation, see the following discussions:
@@ -201,15 +177,13 @@ To learn more about the reasons for this limitation, see the following discussio
### How do I add custom CA certificates?
Starting with Docker Desktop for Windows 1.12.1, 2016-09-16 (Stable) and Beta 26
Starting with Docker Desktop 1.12.1, 2016-09-16 (Stable) and Beta 26
(2016-09-14 1.12.1-beta26), all trusted Certificate Authorities (CA) (root or
intermediate) are supported. Docker recognizes certs stored under Trust Root
Certification Authorities or Intermediate Certification Authorities.
Docker Desktop for Windows creates a certificate bundle of all user-trusted CAs based on
the Windows certificate store, and appends it to Moby trusted certificates. So
if an enterprise SSL certificate is trusted by the user on the host, it is
trusted by Docker Desktop for Windows.
Docker Desktop creates a certificate bundle of all user-trusted CAs based on
the Windows certificate store, and appends it to Moby trusted certificates. Therefore, if an enterprise SSL certificate is trusted by the user on the host, it is trusted by Docker Desktop.
To learn more about how to install a CA root certificate for the registry, see
[Verify repository client with certificates](/engine/security/certificates)
@@ -217,20 +191,19 @@ in the Docker Engine topics.
### How do I add client certificates?
Starting with Docker Desktop for Windows 17.06.0-ce, you do not need to push your
certificates with `git` commands anymore. You can put your client certificates
You can add your client certificates
in `~/.docker/certs.d/<MyRegistry>:<Port>/client.cert` and
`~/.docker/certs.d/<MyRegistry>:<Port>/client.key`.
`~/.docker/certs.d/<MyRegistry>:<Port>/client.key`. You do not need to push your certificates with `git` commands.
When the Docker Desktop for Windows application starts up, it copies the
When the Docker Desktop application starts, it copies the
`~/.docker/certs.d` folder on your Windows system to the `/etc/docker/certs.d`
directory on Moby (the Docker fDesktop or Windows virtual machine running on Hyper-V).
directory on Moby (the Docker Desktop virtual machine running on Hyper-V).
You need to restart Docker Desktop for Windows after making any changes to the keychain
You need to restart Docker Desktop after making any changes to the keychain
or to the `~/.docker/certs.d` directory in order for the changes to take effect.
The registry cannot be listed as an _insecure registry_ (see
[Docker Daemon](/docker-for-windows#daemon)). Docker Desktop for Windows ignores
[Docker Daemon](/docker-for-windows#daemon)). Docker Desktop ignores
certificates listed under insecure registries, and does not send client
certificates. Commands like `docker run` that attempt to pull from the registry
produce error messages on the command line, as well as on the registry.
@@ -239,12 +212,12 @@ To learn more about how to set the client TLS certificate for verification, see
[Verify repository client with certificates](/engine/security/certificates)
in the Docker Engine topics.
### Why does Docker Desktop for Windows sometimes lose network connectivity, causing `push` or `pull` commands to fail?
### Why does Docker Desktop sometimes lose network connectivity, causing `push` or `pull` commands to fail?
Networking is not yet fully stable across network changes and system sleep
cycles. Exit and start Docker to restore connectivity.
cycles. Quit and start Docker Desktop to restore connectivity.
### Can I use VirtualBox alongside Docker 4 Windows?
### Can I use VirtualBox alongside Docker Desktop?
Unfortunately, VirtualBox (and other hypervisors like VMWare) cannot run when
Hyper-V is enabled on Windows.
@@ -252,15 +225,15 @@ Hyper-V is enabled on Windows.
### Can I share local drives and filesystem with my Docker Machine VMs?
No, you cannot share local drives with Docker Machine nodes when using Docker
Desktop for Windows with Hyper-V. Shared drives can be made available to containers, but
Docker Desktop for Windows does not support mounts for nodes you created with
Desktop with Hyper-V. Shared drives can be made available to containers, but
Docker Desktop does not support mounts for nodes you created with
`docker-machine`.
For more about sharing local drives with containers using Docker Desktop for Windows,
For more about sharing local drives with containers using Docker Desktop,
see [Shared drives](/docker-for-windows#shared-drives) in the Getting
Started topic.
To learn more about using Docker Desktop for Windows and Docker Machine, see
To learn more about using Docker Desktop and Docker Machine, see
[What to know before you install](install#what-to-know-before-you-install) in the
Getting Started topic. For more about Docker Machine itself, see
[What is Docker Machine?](/machine/overview#what-is-docker-machine), and the
@@ -268,35 +241,29 @@ Getting Started topic. For more about Docker Machine itself, see
## Windows Requirements
### How do I run Windows containers on Docker Desktop on Windows Server 2016?
### How do I run Windows containers on Docker Desktop on Windows Server?
See [About Windows containers and Windows Server 2016](/install/windows/docker-ee/#about-docker-ee-containers-and-windows-server).
See [About Windows containers and Windows Server](/install/windows/docker-ee/#about-docker-ee-containers-and-windows-server).
A full tutorial is available in [docker/labs](https://github.com/docker/labs){: target="_blank" class="_"} at
[Getting Started with Windows Containers](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md){: target="_blank" class="_"}.
### Why is Windows 10 Home not supported?
Docker Desktop for Windows requires the Hyper-V Windows feature which is not
available on Home-edition.
Docker Desktop requires the Hyper-V feature which is not available in the Windows Home edition.
### Why is Windows 10 required?
Docker Desktop for Windows uses Windows Hyper-V. While older Windows versions have
Hyper-V, their Hyper-V implementations lack features critical for Docker Desktop for
Windows to work.
Docker Desktop uses the Windows Hyper-V features. While older Windows versions have Hyper-V, their Hyper-V implementations lack features critical for Docker Desktop to work.
### Why does Docker Desktop for Windows fail to start when firewalls or anti-virus software is installed?
### Why does Docker Desktop fail to start when firewalls or anti-virus software is installed?
Some firewalls and anti-virus software might be incompatible with Hyper-V and
some Windows 10 builds (possibly, the Anniversary Update), which impacts Docker
Desktop for Windows. See details and workarounds in
Desktop. See details and workarounds in
[Docker fails to start when firewall or anti-virus software is installed](troubleshoot#docker-fails-to-start-when-firewall-or-anti-virus-software-is-installed)
in [Troubleshooting](troubleshoot).
## How do I uninstall Docker Toolbox?
You might decide that you do not need Toolbox now that you have Docker Desktop for
Windows, and want to uninstall it. For details on how to perform a clean
uninstall of Toolbox on Windows, see
[How to uninstall Toolbox](/toolbox/toolbox_install_windows#how-to-uninstall-toolbox) in the Toolbox Windows topics.
Now that you have Docker Desktop, you might decide that you do not need the legacy Docker Toolbox anymore. For details on how to perform a clean uninstall of Toolbox on Windows, see [How to uninstall Toolbox](/toolbox/toolbox_install_windows#how-to-uninstall-toolbox) in the Toolbox Windows topics.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 568 B

View File

@@ -13,12 +13,13 @@ redirect_from:
title: Get started with Docker for Windows
---
Welcome to Docker Desktop for Windows!
Welcome to Docker Desktop!
Docker is a full development platform for creating containerized apps, and
Docker Desktop for Windows is the best way to get started with Docker _on Windows_.
This page contains information about Docker Desktop Community (Stable and Edge) releases. For information about Docker Desktop Enterprise (DDE) releases, see [Docker Desktop Enterprise](/ee/desktop/).
> See [Install Docker Desktop for Windows](install.md){: target="_blank" class="_"} for information on system requirements and stable & edge channels.
Docker is a full development platform for creating containerized applications. Docker Desktop is the best way to get started with Docker _on Windows_.
> See [Install Docker Desktop](install.md){: target="_blank" class="_"} for information on system requirements and Stable and Edge channels.
## Test your installation
@@ -29,7 +30,7 @@ Docker Desktop for Windows is the best way to get started with Docker _on Window
```shell
> docker --version
Docker version 18.03.0-ce, build 0520e24
Docker version 19.03.1
```
3. Pull the [hello-world image](https://hub.docker.com/r/library/hello-world/) from Docker Hub and run a container:
@@ -82,7 +83,7 @@ Docker Desktop for Windows is the best way to get started with Docker _on Window
In this section, we demonstrate the ease and power of Dockerized applications by
running something more complex, such as an OS and a webserver.
1. Pull an image of the [Ubuntu OS](https://hub.docker.com/r/_/ubuntu/) and run an interactive terminal inside the spawned container:
1. Pull an image of the [Ubuntu OS](https://hub.docker.com/r/_/ubuntu/) and run an interactive terminal inside the spawned container:
```shell
> docker run --interactive --tty ubuntu bash
@@ -107,22 +108,23 @@ running something more complex, such as an OS and a webserver.
>
> Interactive terminals do not work in PowerShell ISE (but they do in PowerShell). See [docker/for-win/issues/223](https://github.com/docker/for-win/issues/223).
2. You are in the container. At the root `#` prompt, check the `hostname` of the container:
2. You are in the container. At the root `#` prompt, check the `hostname` of the container:
```shell
root@8aea0acb7423:/# hostname
8aea0acb7423
```
Notice that the hostname is assigned as the container ID (and is also used in the prompt).
3. Exit the shell with the `exit` command (which also stops the container):
3. Exit the shell with the `exit` command (which also stops the container):
```shell
root@8aea0acb7423:/# exit
>
```
4. List containers with the `--all` option (because no containers are running).
4. List containers with the `--all` option (because no containers are running).
The `hello-world` container (randomly named, `relaxed_sammet`) stopped after displaying its message. The `ubuntu` container (randomly named, `laughing_kowalevski`) stopped when you exited the container.
@@ -134,7 +136,7 @@ running something more complex, such as an OS and a webserver.
45f77eb48e78 hello-world "/hello" 3 minutes ago Exited (0) 3 minutes ago relaxed_sammet
```
5. Pull and run a Dockerized [nginx](https://hub.docker.com/_/nginx/) web server that we name, `webserver`:
5. Pull and run a Dockerized [nginx](https://hub.docker.com/_/nginx/) web server that we name, `webserver`:
```shell
> docker run --detach --publish 80:80 --name webserver nginx
@@ -151,11 +153,11 @@ running something more complex, such as an OS and a webserver.
dfe13c68b3b86f01951af617df02be4897184cbf7a8b4d5caf1c3c5bd3fc267f
```
6. Point your web browser at `http://localhost` to display the nginx start page. (You don't need to append `:80` because you specified the default HTTP port in the `docker` command.)
6. Point your web browser at `http://localhost` to display the nginx start page. (You don't need to append `:80` because you specified the default HTTP port in the `docker` command.)
![Run nginx edge](images/nginx-homepage.png)
7. List only your _running_ containers:
7. List only your _running_ containers:
```shell
> docker container ls
@@ -164,13 +166,13 @@ running something more complex, such as an OS and a webserver.
0e788d8e4dfd nginx "nginx -g 'daemon of…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp webserver
```
8. Stop the running nginx container by the name we assigned it, `webserver`:
8. Stop the running nginx container by the name we assigned it, `webserver`:
```shell
> docker container stop webserver
```
9. Remove all three containers by their names -- the latter two names will differ for you:
9. Remove all three containers by their names -- the latter two names will differ for you:
```shell
> docker container rm webserver laughing_kowalevski relaxed_sammet
@@ -178,19 +180,18 @@ running something more complex, such as an OS and a webserver.
## Docker Settings dialog
The **Docker Desktop for Windows menu** is a popup by which you can configure your
Docker settings -- installation, updates, version channels, Docker Hub login,
The **Docker Desktop** menu allows you to configure your Docker settings such as installation, updates, version channels, Docker Hub login,
and more.
This section explains the configuration options accessible from the **Settings** dialog.
1. Open the Docker Desktop for Windows menu by right-clicking the Docker icon in the Notifications area (or System tray):
1. Open the Docker Desktop menu by clicking the Docker icon in the Notifications area (or System tray):
![Showing hidden apps in the taskbar](images/whale-icon-systray-hidden.png){:width="250px"}
2. Select **Settings...** to open the Settings dialog:
2. Select **Settings** to open the Settings dialog:
![Docker Desktop for Windows popup menu](images/docker-menu-settings.png){:width="400px"}
![Docker Desktop popup menu](images/docker-menu-settings.png){:width="300px"}
### General
@@ -198,23 +199,22 @@ On the **General** tab of the Settings dialog, you can configure when to start a
![Settings](images/settings-general.png){:width="600px"}
* **Start Docker when you log in** - Automatically start the Docker Desktop for Windows
application upon Windows system login.
* **Start Docker when you log in** - Automatically start Docker Desktop upon Windows system login.
* **Automatically check for updates** - By default, Docker Desktop for Windows
automatically checks for updates and notifies you when an update is available.
* **Automatically check for updates** - By default, Docker Desktop automatically checks for updates and notifies you when an update is available.
Click **OK** to accept and install updates (or cancel to keep the current
version). You can manually update by choosing **Check for Updates** from the
main Docker menu.
* **Send usage statistics** - By default, Docker Desktop for Windows sends diagnostics,
* **Send usage statistics** - By default, Docker Desktop sends diagnostics,
crash reports, and usage data. This information helps Docker improve and
troubleshoot the application. Uncheck to opt out. Docker may also sometimes
prompt you for more information.
troubleshoot the application. Clear the check box to opt out. Docker may periodically prompt you for more information.
* **Expose daemon on tcp://localhost:2375 without TLS** - Click this option to enable legacy clients to connect to the Docker daemon. You must use this option with caution as exposing the daemon without TLS can result in remote code execution attacks.
### Shared drives
Share your local drives (volumes) with Docker Desktop for Windows, so that they are
Share your local drives (volumes) with Docker Desktop, so that they are
available to your [Linux containers](#switch-between-windows-and-linux-containers).
![Shared drives](images/settings-shared-drives.png){:width="600px"}
@@ -236,11 +236,10 @@ credentials so that you don't need to enter them every time.
>
* If possible, avoid volume mounts from the Windows host, and instead mount on
the Linux VM, or use a [data volume](/engine/tutorials/dockervolumes.md#data-volumes)
(named volume) or [data container](/engine/tutorials/dockervolumes.md#creating-and-mounting-a-data-volume-container).
There are a number of issues with using host-mounted volumes and network paths
(named volume) or [data container](/engine/tutorials/dockervolumes.md#creating-and-mounting-a-data-volume-container). There are a number of issues with using host-mounted volumes and network paths
for database files. See [Volume mounts from host paths use a nobrl option to override database locking](troubleshoot.md#volume-mounts-from-host-paths-use-a-nobrl-option-to-override-database-locking).
>
* Docker Desktop for Windows sets permissions to read/write/execute for users, groups and others [0777 or a+rwx](http://permissions-calculator.org/decode/0777/).
* Docker Desktop sets permissions to read/write/execute for users, groups and others [0777 or a+rwx](http://permissions-calculator.org/decode/0777/).
This is not configurable. See [Permissions errors on data directories for shared volumes](troubleshoot.md#permissions-errors-on-data-directories-for-shared-volumes).
>
* Ensure the domain user has access to shared drives, as described in [Verify domain user has permissions for shared drives](troubleshoot.md#verify-domain-user-has-permissions-for-shared-drives-volumes).
@@ -255,7 +254,7 @@ Shared drives require port 445 to be open between the host machine and the
virtual machine that runs Linux containers. Docker detects if port 445 is closed
and shows the following message when you try to add a shared drive:
![Port 445 blocked](images/shared-drive-firewall-blocked.png)
![Port 445 blocked](images/shared-drive-firewall-blocked.png){:width="600px"}
To share the drive, allow connections between the Windows host machine and the
virtual machine in Windows Firewall or your third party firewall software. You
@@ -274,11 +273,10 @@ If you run a Docker command from a shell with a volume mount (as shown in the
example below) or kick off a Compose file that includes volume mounts, you get a
popup asking if you want to share the specified drive.
You can select to **Share it**, in which case it is added your Docker Desktop for
Windows [Shared Drives list](index.md#shared-drives) and available to
containers. Alternatively, you can opt not to share it by hitting Cancel.
You can select to **Share it**, in which case it is added your Docker Desktop [Shared Drives list](index.md#shared-drives) and available to
containers. Alternatively, you can opt not to share it by selecting **Cancel**.
![Shared drive on demand](images/shared-drive-on-demand.png)
![Shared drive on demand](images/shared-drive-on-demand.png){:width="600px"}
### Advanced
@@ -288,11 +286,13 @@ The Linux VM restarts after changing the settings on the Advanced tab. This take
* **CPUs** - Change the number of processors assigned to the Linux VM.
* **Memory** - Change the amount of memory the Docker Desktop for Windows Linux VM uses.
* **Memory** - Change the amount of memory the Docker Desktop Linux VM uses.
* **Swap** - Configure the swap file size.
### Network
You can configure Docker Desktop for Windows networking to work on a virtual private network (VPN).
You can configure Docker Desktop networking to work on a virtual private network (VPN).
![Network settings](images/settings-network.png){:width="600px"}
@@ -300,8 +300,7 @@ You can configure Docker Desktop for Windows networking to work on a virtual pri
* **DNS Server** - You can configure the DNS server to use dynamic or static IP addressing.
> **Note**: Some users reported problems connecting to Docker Hub on Docker Desktop for
> Windows stable version. This would manifest as an error when trying to run
> **Note**: Some users reported problems connecting to Docker Hub on Docker Desktop Stable version. This would manifest as an error when trying to run
> `docker` commands that pull images from Docker Hub that are not already
> downloaded, such as a first time run of `docker run hello-world`. If you
> encounter this, reset the DNS server to use the Google DNS fixed address:
@@ -312,7 +311,7 @@ Updating these settings requires a reconfiguration and reboot of the Linux VM.
### Proxies
Docker Desktop for Windows lets you configure HTTP/HTTPS Proxy Settings and
Docker Desktop lets you configure HTTP/HTTPS Proxy Settings and
automatically propagates these to Docker and to your containers. For example,
if you set your proxy settings to `http://proxy.example.com`, Docker uses this
proxy when pulling containers.
@@ -339,29 +338,22 @@ automatically to pick up the new settings. If you have containers that you wish
to keep running across restarts, you should consider using
[restart policies](/engine/reference/run/#restart-policies-restart).
<p id="daemon-experimental-mode" />
### Daemon
You can configure the Docker daemon to hone how your containers run.
**Advanced mode** lets you edit the JSON directly. **Basic mode** lets you
configure the more common daemon options with interactive settings (and also JSON).
configure the common daemon options with interactive settings.
![Docker Daemon](images/settings-daemon-basic.png){:width="600px"}
#### Experimental mode
#### Experimental features
Both Docker Desktop for Windows Stable and Edge releases have the experimental version
of Docker Engine enabled, described in the [Docker Experimental Features README](https://github.com/docker/cli/blob/master/experimental/README.md) on
GitHub.
Docker Desktop Edge releases have the experimental version
of Docker Engine enabled by default, described in the [Docker Experimental Features README](https://github.com/docker/cli/blob/master/experimental/README.md) on GitHub.
Experimental features are not appropriate for production environments or
workloads. They are meant to be sandbox experiments for new ideas. Some
experimental features may become incorporated into upcoming stable releases, but
others may be modified or pulled from subsequent Edge releases, and never
released on Stable.
{% include experimental.md %}
On both Edge and Stable releases, you can toggle **experimental mode** on and
off. If you toggle it off, Docker Desktop for Windows uses the current generally
On both Edge and Stable releases, you can toggle the **Experimental features** on and off. If you toggle it off, Docker Desktop uses the current generally
available release of Docker Engine.
Run `docker version` to see if you are in Experimental mode. Experimental mode
@@ -371,38 +363,45 @@ running in experimental mode, as shown here:
```shell
> docker version
Client:
Version: 18.03.0-ce
API version: 1.37
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:06:28 2018
OS/Arch: windows/amd64
Experimental: true
Orchestrator: swarm
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:08 2019
OS/Arch: windows/amd64
Experimental: true
Server:
Server: Docker Engine - Community
Engine:
Version: 18.03.0-ce
API version: 1.37 (minimum version 1.24)
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:21:06 2018
OS/Arch: windows/amd64
Experimental: true
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:52 2019
OS/Arch: linux/amd64
Experimental: true
containerd:
Version: v1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
```
#### Custom registries
#### Insecure registries
You can set up your own [registries](/registry/introduction.md) on the **Basic**
Daemon settings.
Normally, you store public or private images in [Docker Hub](https://hub.docker.com/)
and [Docker Trusted Registry](/datacenter/dtr/2.4/guides/index.md). Here, you
can use Docker to set up your own insecure [registry](/registry/introduction.md).
Simply add URLs for insecure registries and registry mirrors on which to host your images.
can use Docker to set up your own insecure [registry](/registry/introduction.md). Simply add URLs for insecure registries and registry mirrors on which to host your images.
See [How do I add custom CA certificates?](faqs.md#how-do-i-add-custom-ca-certificates)
For more information, see [How do I add custom CA certificates?](faqs.md#how-do-i-add-custom-ca-certificates)
and [How do I add client certificates?](faqs.md#how-do-i-add-client-certificates) in the FAQs.
#### Daemon configuration file
@@ -424,15 +423,10 @@ For a full list of options on the Docker daemon, see [daemon](/engine/reference/
### Kubernetes
[Kubernetes on Docker Desktop for Windows](/docker-for-windows/kubernetes/){: target="_blank" class="_"}
is available in
[18.02 Edge (win50)](/docker-for-windows/edge-release-notes/#docker-community-edition-18020-ce-rc1-win50-2018-01-26){: target="_blank" class="_"} and higher, and in [18.06 Stable (win70)](/docker-for-windows/edge-release-notes/#docker-community-edition-18060-ce-win70-2018-07-25) and higher.
Docker Desktop includes a standalone Kubernetes server that runs on your Windows host, so that you can test deploying your Docker workloads on Kubernetes.
![Enable Kubernetes](images/settings-kubernetes.png){:width="600px"}
From Docker Desktop for Windows 18.02 CE Edge and 18.06 CE Stable a standalone Kubernetes server is included that runs on your Windows host, so that you can test deploying your
Docker workloads on Kubernetes.
The Kubernetes client command, `kubectl`, is included and configured to connect
to the local Kubernetes server. If you have `kubectl` already installed and
pointing to some other environment, such as `minikube` or a GKE cluster, be sure
@@ -443,45 +437,47 @@ to change context so that `kubectl` is pointing to `docker-for-desktop`:
> kubectl config use-context docker-for-desktop
```
You can also change it through the Docker Desktop for Windows menu:
You can also change it through the Docker Desktop menu:
![Change Kubernetes Context](images/docker-menu-context-switch.png){:width="600px"}
![Change Kubernetes Context](images/docker-menu-context-switch.png){:width="450px"}
If you installed `kubectl` by another method, and
experience conflicts, remove it.
- To enable Kubernetes support and install a standalone instance of Kubernetes
running as a Docker container, select **Enable Kubernetes** and click the
**Apply and restart** button.
An Internet connection is required. Images required to run the Kubernetes
server are downloaded and instantiated as containers, and the
> Program Files\Docker\Docker\Resources\bin\kubectl.exe` command is installed.
**Apply** button. This instantiates images required to run the Kubernetes server as containers, and installs the `kubectl.exe` command in the path.
- By default, Kubernetes containers are hidden from commands like `docker
service ls`, because managing them manually is not supported. To make them
visible, select **Show system containers (advanced)** and click **Apply and restart**.
visible, select **Show system containers (advanced)** and click **Apply**.
Most users do not need this option.
- To disable Kubernetes support at any time, deselect **Enable Kubernetes**.
The Kubernetes containers are stopped and removed, and the
`/usr/local/bin/kubectl` command is removed.
For more about using the Kubernetes integration with Docker Desktop for Windows,
see [Deploy on Kubernetes](kubernetes.md).
For more information on using the Kubernetes integration with Docker Desktop, see [Deploy on Kubernetes](kubernetes.md).
### Reset
On the Reset tab, you can restart Docker or reset its configuration.
> Reset and Restart options
>
> On Edge releases, the **Restart Docker Desktop**, **Reset Kubernetes Cluster**, and **Reset to factory defaults** options are available on the **Troubleshoot** menu.
On Stable releases, you can restart Docker or reset its configuration using the Reset tab.
![Reset](images/settings-reset.png){:width="600px"}
* **Restart Docker** - Shuts down and restarts the Docker application.
* **Restart Docker Desktop** - Shuts down and restarts the Docker application.
* **Reset Kubernetes Cluster** - Deletes all stacks and Kubernetes resources.
* **Reset to factory defaults** - Resets Docker to factory defaults. This is
useful in cases where Docker stops working or becomes unresponsive.
### Diagnose & feedback
### Troubleshoot
Visit our [Logs and Troubleshooting](troubleshoot.md) guide for more details.
@@ -489,18 +485,18 @@ Log on to our [Docker Desktop for Windows forum](https://forums.docker.com/c/doc
Log on to [Docker Desktop for Windows issues on GitHub](https://github.com/docker/for-win/issues) to report bugs or problems and review community reported issues.
To give feedback on the documentation or update it yourself, use the Feedback options at the bottom of each docs page.
For information about providing feedback on the documentation or update it yourself, see [Contribute to documentation](/opensource/).
## Switch between Windows and Linux containers
From the Docker Desktop for Windows menu, you can toggle which daemon (Linux or Windows)
From the Docker Desktop menu, you can toggle which daemon (Linux or Windows)
the Docker CLI talks to. Select **Switch to Windows containers** to use Windows
containers, or select **Switch to Linux containers** to use Linux containers
(the default).
![Windows-Linux container types switch](images/docker-menu-switch.png){:width="400px"}
![Windows-Linux container types switch](images/docker-menu-switch.png){:width="300px"}
For more information on Windows containers, refer to this documentation:
For more information on Windows containers, refer to the following documentation:
- Microsoft documentation on [Windows containers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/index).
@@ -512,44 +508,41 @@ For more information on Windows containers, refer to this documentation:
application with Windows containers. The MusicStore is a standard .NET application and,
[forked here to use containers](https://github.com/friism/MusicStore), is a good example of a multi-container application.
- To understand how to connect to Windows containers from the local host, see:
- To understand how to connect to Windows containers from the local host, see
[Limitations of Windows containers for `localhost` and published ports](troubleshoot.md#limitations-of-windows-containers-for-localhost-and-published-ports)
> Settings dialog changes with Windows containers
>
> When you switch to Windows containers, the Settings dialog only shows those tabs that are active and apply to your Windows containers:
>
* [General](#general)
* [Proxies](#proxies)
* [Docker daemon](#docker-daemon)
* [Diagnose and Feedback](#diagnose-and-feedback)
* [Daemon](#docker-daemon)
* [Reset](#reset)
>
If you set proxies or daemon configuration in Windows containers mode, these
apply only on Windows containers. If you switch back to Linux containers,
proxies and daemon configurations return to what you had set for Linux
containers. Your Windows container settings are retained and become available
again when you switch back.
>
## Adding TLS certificates
To your Docker daemon, you can add trusted **Certificate Authorities (CAs)**, to verify registry server
certificates, and **client certificates**, to authenticate to registries.
See [How do I add custom CA certificates?](faqs.md#how-do-i-add-custom-ca-certificates)
and [How do I add client certificates?](faqs.md#how-do-i-add-client-certificates)
in the FAQs.
## Docker Hub
Select **Sign in /Create Docker ID** from the Docker Desktop for Windows menu to access your [Docker Hub](https://hub.docker.com/){: target="_blank" clas="_" } account. Once logged in, you can access your Docker Hub repositories directly from the Docker Desktop for Windows menu.
Select **Sign in /Create Docker ID** from the Docker Desktop menu to access your [Docker Hub](https://hub.docker.com/){: target="_blank" class="_" } account. Once logged in, you can access your Docker Hub repositories directly from the Docker Desktop menu.
See these [Docker Hub topics](/docker-hub/index.md){: target="_blank" class="_" } to learn more:
For more information, refer to the following [Docker Hub topics](/docker-hub/index.md){: target="_blank" class="_" }:
* [Organizations and Teams in Docker Hub](/docker-hub/orgs.md){: target="_blank" class="_" }
* [Builds and Images](/docker-cloud/builds/index.md){: target="_blank" class="_" }
## Adding TLS certificates
You can add trusted **Certificate Authorities (CAs)** to your Docker daemon to verify registry server
certificates, and **client certificates**, to authenticate to registries. For more information, see [How do I add custom CA certificates?](faqs.md#how-do-i-add-custom-ca-certificates)
and [How do I add client certificates?](faqs.md#how-do-i-add-client-certificates)
in the FAQs.
## Where to go next
* Try out the walkthrough at [Get Started](/get-started/){: target="_blank" class="_"}.

View File

@@ -1,52 +1,51 @@
---
description: How to install Docker Desktop for Windows
keywords: windows, beta, edge, alpha, install, download
title: Install Docker Desktop for Windows
title: Install Docker Desktop on Windows
---
Docker Desktop for Windows is the [Community Edition
(CE)](https://www.docker.com/community-edition) of Docker for Microsoft Windows.
To download Docker Desktop for Windows, head to Docker Hub.
Docker Desktop for Windows is the [Community](https://www.docker.com/community-edition) version of Docker for Microsoft Windows.
You can download Docker Desktop for Windows from Docker Hub.
[Download from Docker
Hub](https://hub.docker.com/?overlay=onboarding){:
.button .outline-btn}
## What to know before you install
## What to know before you install
* **README FIRST for Docker Toolbox and Docker Machine users**: Docker Desktop for
Windows requires Microsoft Hyper-V to run. The Docker Desktop for Windows installer
enables Hyper-V for you, if needed, and restarts your machine. After Hyper-V is
enabled, VirtualBox no longer works, but any VirtualBox VM images remain.
VirtualBox VMs created with `docker-machine` (including the `default` one
typically created during Toolbox install) no longer start. These VMs cannot be
used side-by-side with Docker Desktop for Windows. However, you can still use
`docker-machine` to manage remote VMs.
### System Requirements
* **System Requirements**:
- Windows 10 64bit: Pro, Enterprise or Education (Build 15063 or later).
- Virtualization is enabled in BIOS. Typically, virtualization is enabled by
default. This is different from having Hyper-V enabled. For more detail see
[Virtualization must be
enabled](troubleshoot.md#virtualization-must-be-enabled) in Troubleshooting.
- CPU SLAT-capable feature.
- At least 4GB of RAM.
- Windows 10 64-bit: Pro, Enterprise, or Education (Build 15063 or later).
- Hyper-V and Containers Windows features must be enabled.
- The following hardware prerequisites are required to successfully run Client
Hyper-V on Windows 10:
> **Note**: If your system does not meet the requirements to run Docker Desktop for
> Windows, you can install [Docker Toolbox](/toolbox/overview.md), which uses
> Oracle Virtual Box instead of Hyper-V.
- 64 bit processor with [Second Level Address Translation (SLAT)](http://en.wikipedia.org/wiki/Second_Level_Address_Translation)
- 4GB system RAM
- BIOS-level hardware virtualization support must be enabled in the
BIOS settings. For more information, see
[Virtualization](troubleshoot.md#virtualization-must-be-enabled).
* **What the Docker Desktop for Windows install includes**: The installation provides
[Docker Engine](/engine/userguide/), Docker CLI client, [Docker
Compose](/compose/overview.md), [Docker Machine](/machine/overview.md), and
[Kitematic](/kitematic/userguide.md).
* Containers and images created with Docker Desktop for Windows are shared between all
user accounts on machines where it is installed. This is because all Windows
accounts use the same VM to build and run containers.
* Nested virtualization scenarios, such as running Docker Desktop for Windows on a
VMWare or Parallels instance might work, but there are no guarantees. For
more information, see [Running Docker Desktop for Windows in nested virtualization
scenarios](troubleshoot.md#running-docker-desktop-for-windows-in-nested-virtualization-scenarios)
> **Note:** Docker supports Docker Desktop on Windows based on Microsoft’s support lifecycle for Windows 10 operating system. For more information, see the [Windows lifecycle fact sheet](https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet).
**README for Docker Toolbox and Docker Machine users**: Microsoft Hyper-V is required to run Docker Desktop. The Docker Desktop Windows installer enables Hyper-V if required, and restarts your machine. When Hyper-V is enabled, VirtualBox no longer works. However, any existing VirtualBox VM images are retained.
VirtualBox VMs created with `docker-machine` (including the `default` one
typically created during Toolbox install) no longer start. These VMs cannot be
used side-by-side with Docker Desktop. However, you can still use
`docker-machine` to manage remote VMs.
### What's included in the installer
The Docker Desktop installation includes [Docker Engine](/engine/userguide/), Docker CLI client, [Docker Compose](/compose/overview.md), [Docker Machine](/machine/overview.md), and [Kitematic](/kitematic/userguide.md).
Containers and images created with Docker Desktop are shared between all
user accounts on machines where it is installed. This is because all Windows
accounts use the same VM to build and run containers.
Nested virtualization scenarios, such as running Docker Desktop on a
VMWare or Parallels instance might work, but there are no guarantees. For
more information, see [Running Docker Desktop in nested virtualization scenarios](troubleshoot.md#running-docker-desktop-for-windows-in-nested-virtualization-scenarios).
**Note**: Refer to the [Docker compatibility matrix](https://success.docker.com/article/compatibility-matrix) for complete Docker compatibility information with Windows Server.
@@ -56,17 +55,15 @@ Looking for information on using Windows containers?
* [Switch between Windows and Linux
containers](/docker-for-windows/index.md#switch-between-windows-and-linux-containers)
describes the Linux / Windows containers toggle in Docker Desktop for Windows and
points you to the tutorial mentioned above.
describes how you can toggle between Linux and Windows containers in Docker Desktop and points you to the tutorial mentioned above.
* [Getting Started with Windows Containers
(Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md)
provides a tutorial on how to set up and run Windows containers on Windows 10
or with Windows Server 2016. It shows you how to use a MusicStore application
provides a tutorial on how to set up and run Windows containers on Windows 10, Windows Server 2016 and Windows Server 2019. It shows you how to use a MusicStore application
with Windows containers.
* Docker Container Platform for Windows Server 2016 [articles and blog
posts](https://www.docker.com/microsoft/) on the Docker website
* Docker Container Platform for Windows [articles and blog
posts](https://www.docker.com/microsoft/) on the Docker website.
## Install Docker Desktop for Windows desktop app
## Install Docker Desktop on Windows
1. Double-click **Docker Desktop Installer.exe** to run the installer.
@@ -75,41 +72,35 @@ Looking for information on using Windows containers?
It typically downloads to your `Downloads` folder, or you can run it from
the recent downloads bar at the bottom of your web browser.
2. Follow the install wizard to accept the license, authorize the installer, and
proceed with the install.
2. Follow the instructions on the installation wizard to accept the license, authorize the installer, and proceed with the install.
You are asked to authorize `Docker.app` with your system password during the
When prompted, authorize the Docker Desktop Installer with your system password during the
install process. Privileged access is needed to install networking
components, links to the Docker apps, and manage the Hyper-V VMs.
3. Click **Finish** on the setup complete dialog to launch Docker.
3. Click **Finish** on the setup complete dialog and launch the Docker Desktop application.
## Start Docker Desktop for Windows
## Start Docker Desktop
Docker does not start automatically after installation. To start it, search for
Docker, select **Docker Desktop for Windows** in the search results, and click it (or
hit Enter).
Docker Desktop does not start automatically after installation. To start Docker Desktop, search for Docker, and select **Docker Desktop** in the search results.
![search for Docker app](images/docker-app-search.png){:width="400px"}
When the whale in the status bar stays steady, Docker is up-and-running, and
accessible from any terminal window.
When the whale icon in the status bar stays steady, Docker Desktop is up-and-running, and is accessible from any terminal window.
![whale on taskbar](images/whale-icon-systray.png)
If the whale is hidden in the Notifications area, click the up arrow on the
taskbar to show it. To learn more, see [Docker
Settings](/docker-for-windows/index.md#docker-settings-dialog).
If the whale icon is hidden in the Notifications area, click the up arrow on the
taskbar to show it. To learn more, see [Docker Settings](/docker-for-windows/index.md#docker-settings-dialog).
If you just installed the app, you also get a popup success message with
After installing the Docker Desktop app, you also get a pop-up success message with
suggested next steps, and a link to this documentation.
![Startup information](images/docker-app-welcome.png){:width="400px"}
When initialization is complete, select **About Docker** from the Notifications
area icon to verify that you have the latest version.
When initialization is complete, click the whale icon in the Notifications area and select **About Docker Desktop** to verify that you have the latest version.
Congratulations! You are up and running with Docker Desktop for Windows.
Congratulations! You are successfully running Docker Desktop on Windows.
## Where to go next

View File

@@ -5,15 +5,15 @@ title: Networking features in Docker Desktop for Windows
---
{% assign Arch = 'Windows' %}
Docker Desktop for {{Arch}} provides several networking features to make it easier to
Docker Desktop provides several networking features to make it easier to
use.
## Features
### VPN Passthrough
Docker Desktop for {{Arch}}'s networking can work when attached to a VPN. To do this,
Docker Desktop for {{Arch}} intercepts traffic from the containers and injects it into
Docker Desktop networking can work when attached to a VPN. To do this,
Docker Desktop intercepts traffic from the containers and injects it into
{{Arch}} as if it originated from the Docker application.
### Port Mapping
@@ -24,7 +24,7 @@ When you run a container with the `-p` argument, for example:
$ docker run -p 80:80 -d nginx
```
Docker Desktop for {{Arch}} makes whatever is running on port 80 in the container (in
Docker Desktop makes whatever is running on port 80 in the container (in
this case, `nginx`) available on port 80 of `localhost`. In this example, the
host and container ports are the same. What if you need to specify a different
host port? If, for example, you already have something running on port 80 of

View File

@@ -5,10 +5,10 @@ title: Open source components and licensing
notoc: true
---
Docker Desktop Editions are built using open source software. For details on the
Docker Desktop is built using open source software. For information about the
licensing, choose ![whale menu](/docker-for-mac/images/whale-x.png){: .inline}
→ &nbsp;**About** from within the application, then click **Acknowledgements**.
→ &nbsp;**About Docker Desktop** and then **Acknowledgements**.
Docker Desktop Editions distribute some components that are licensed under the
Docker Desktop distributes some components that are licensed under the
GNU General Public License. You can download the source for these components
[here](https://download.docker.com/opensource/License.tar.gz).

View File

@@ -7,43 +7,38 @@ redirect_from:
title: Logs and troubleshooting
---
Here is information about how to diagnose and troubleshoot problems, send logs
and communicate with the Docker Desktop for Windows team, use our forums and Knowledge
Hub, browse and log issues on GitHub, and find workarounds for known problems.
This page contains information on how to diagnose and troubleshoot problems, send logs and communicate with the Docker Desktop team, use our forums and Knowledge Hub, browse and log issues on GitHub, and find workarounds for known problems.
## Docker Knowledge Hub
**Looking for help with Docker Desktop for Windows?** Check out the [Docker Knowledge
Hub](http://success.docker.com/q) for knowledge base articles, FAQs, and
**Looking for help with Docker Desktop for Windows?** Check out [Docker Success Center](http://success.docker.com/q) for knowledge base articles, FAQs, and
technical support for various subscription levels.
## Diagnose problems, send feedack, and create GitHub issues
## Diagnose problems, send feedback, and create GitHub issues
### In-app diagnostics
If you encounter problems for which you do not find solutions in this
If you experience issues for which you do not find solutions in this
documentation, on [Docker Desktop for Windows issues on
GitHub](https://github.com/docker/for-win/issues), or the [Docker Desktop for Windows
forum](https://forums.docker.com/c/docker-for-windows), we can help you
troubleshoot the log data.
Choose ![whale menu](images/whale-x.png){: .inline} → **Diagnose & Feedback**
from the menu bar.
Choose ![whale menu](images/whale-x.png){: .inline} > **Troubleshoot**
from the menu.
![Diagnose & Feedback](images/diagnose-feedback.png){:width="600px"}
Once the **Diagnose & Feedback** window is opened, it will start to collect the
dignostics. When the diagnostics are available, you can upload them and obtain a
**Diagnostic ID**, which must be provided when communicating with the Docker
team. For more information on our policy regarding personal data you can read
When the **Diagnose & Feedback** window initiated, it starts collecting diagnostics. When the diagnostics are available, you can upload them and obtain a **Diagnostic ID**, which must be provided when communicating with the Docker
team. For more information on our policy regarding personal data, see
[how is personal data handled in Docker
Desktop](https://docs.docker.com/docker-for-mac/faqs/#how-is-personal-data-handled-in-docker-desktop).
![Diagnose & Feedback with ID](images/diagnostic-id.png){:width="600px"}
If you click on **Report an issue**, this opens [Docker Desktop for Windows issues on
If you click on **Report an issue**, it opens [Docker Desktop for Windows issues on
GitHub](https://github.com/docker/for-win/issues/) in your web browser in a
"create new issue" template, to be completed before submision. Do not forget to
"New issue" template, to be completed before submission. Do not forget to
include your diagnostic ID.
![issue-template](images/issue-template.png){:width="600px"}
@@ -74,7 +69,7 @@ Diagnostics ID: CD6CF862-9CBD-4007-9C2F-5FBE0572BBC2/20180720152545 (uploade
### Make sure certificates are set up correctly
Docker Desktop for Windows ignores certificates listed under insecure registries, and
Docker Desktop ignores certificates listed under insecure registries, and
does not send client certificates to them. Commands like `docker run` that
attempt to pull from the registry produces error messages on the command line,
like this:
@@ -99,7 +94,7 @@ Getting Started topic.
#### Permissions errors on data directories for shared volumes
Docker Desktop for Windows sets permissions on [shared volumes](index.md#shared-drives)
Docker Desktop sets permissions on [shared volumes](index.md#shared-drives)
to a default value of [0777](http://permissions-calculator.org/decode/0777/)
(`read`, `write`, `execute` permissions for `user` and for `group`).
@@ -109,10 +104,8 @@ volume defaults at container runtime, you need to either use non-host-mounted
volumes or find a way to make the applications work with the default file
permissions.
Docker Desktop for Windows currrently implements host-mounted volumes based on the
[Microsoft SMB
protocol](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365233(v=vs.85).aspx),
which does not support fine-grained, `chmod` control over these permissions.
Docker Desktop currently implements host-mounted volumes based on [Microsoft SMB
protocol](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365233(v=vs.85).aspx), which does not support fine-grained, `chmod` control over these permissions.
See also, [Can I change permissions on shared volumes for container-specific
deployment
@@ -123,7 +116,7 @@ drives](https://github.com/docker/docker.github.io/issues/3298).
#### inotify on shared drives does not work
Currently, `inotify` does not work on Docker Desktop for Windows. This becomes evident,
Currently, `inotify` does not work on Docker Desktop. This becomes evident,
for example, when an application needs to read/write to a container across a
mounted drive. Instead of relying on filesystem inotify, we recommend using
polling features for your framework or programming language.
@@ -131,11 +124,9 @@ polling features for your framework or programming language.
* **Workaround for nodemon and Node.js** - If you are using
[nodemon](https://github.com/remy/nodemon) with `Node.js`, try the fallback
polling mode described here: [nodemon isn't restarting node
applications](https://github.com/remy/nodemon#application-isnt-restarting)
applications](https://github.com/remy/nodemon#application-isnt-restarting).
* **Docker Desktop for Windows issue on GitHub** - See the issue [Inotify on shared
drives does not
work](https://github.com/docker/for-win/issues/56#issuecomment-242135705)
* **Docker Desktop for Windows issue on GitHub** - See the issue [Inotify on shared drives does not work](https://github.com/docker/for-win/issues/56#issuecomment-242135705).
#### Volume mounting requires shared drives for Linux containers
@@ -145,8 +136,8 @@ cannot start, such as when using [Docker Compose](/compose/gettingstarted.md),
you might need to enable [shared drives](index.md#shared-drives).
Volume mounting requires shared drives for Linux containers (not for Windows
containers). Go to ![whale menu](/docker-for-mac/images/whale-x.png){: .inline}
→ **Settings** → **Shared Drives** and share the drive that contains the
containers). Click ![whale menu](images/whale-x.png){: .inline}
and then **Settings** > **Shared Drives** and share the drive that contains the
Dockerfile and volume.
#### Verify domain user has permissions for shared drives (volumes)
@@ -286,43 +277,37 @@ script](https://github.com/moby/moby/issues/24388).
### Virtualization
In order for Docker Desktop for Windows to function properly your machine needs:
For Docker Desktop to function correctly, your machine must have the following features:
1. [Hyper-V](https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-technology-overview)
installed and working
2. Virtualization enabled
#### Hyper-V
Docker Desktop for Windows requires a Hyper-V as well as the Hyper-V Module for Windows
Powershell to be installed and enabled. The Docker Desktop for Windows installer enables
Docker Desktop requires Hyper-V as well as the Hyper-V Module for Windows
Powershell to be installed and enabled. The Docker Desktop installer enables
it for you.
Docker Desktop for Windows also needs two CPU hardware features to use Hyper-V: Virtualization and SLAT (Second Level Address Translation), which is also called RVI (Rapid Virtualization Indexing).
On some systems, Virtualization needs to be enabled in the BIOS. The steps required are vendor-specific, but typically the BIOS option is called `Virtualization Technology (VTx)` or something similar. Run the command `systeminfo` to check all required Hyper-V features. See [Pre-requisites for Hyper-V on Windows 10](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/hyper-v-requirements) for more details.
Docker Desktop also needs two CPU hardware features to use Hyper-V: Virtualization and Second Level Address Translation (SLAT), which is also called Rapid Virtualization Indexing (RVI). On some systems, Virtualization must be enabled in the BIOS. The steps required are vendor-specific, but typically the BIOS option is called `Virtualization Technology (VTx)` or something similar. Run the command `systeminfo` to check all required Hyper-V features. See [Pre-requisites for Hyper-V on Windows 10](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/hyper-v-requirements) for more details.
To install Hyper-V manually, see [Install Hyper-V on Windows 10](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick_start/walkthrough_install). A reboot is *required* after installation. If you install Hyper-V without rebooting, Docker Desktop for Windows does not work correctly.
To install Hyper-V manually, see [Install Hyper-V on Windows 10](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick_start/walkthrough_install). A reboot is *required* after installation. If you install Hyper-V without rebooting, Docker Desktop does not work correctly.
From the start menu, type in "Turn Windows features on or off" and hit enter.
In the subequent screen, verify Hyper-V is enabled and has a checkmark:
From the start menu, type **Turn Windows features on or off** and press enter.
In the subsequent screen, verify that Hyper-V is enabled:
![Hyper-V on Windows features](images/hyperv-enabled.png){:width="600px"}
#### Hyper-V driver for Docker Machine
Docker Desktop for Windows comes with the legacy tool Docker Machine which uses the old
The Docker Desktop installation includes the legacy tool Docker Machine which uses the old
[`boot2docker.iso`](https://github.com/boot2docker/boot2docker){:
target="_blank" class="_"}, and the [Microsoft Hyper-V
driver](/machine/drivers/hyper-v.md) to create local virtual machines. _This is
tangential to using Docker Desktop for Windows_, but if you want to use Docker Machine
to create multiple local VMs, or to provision remote machines, see the [Docker
Machine](/machine/index.md) topics. We mention this here only in case someone is
looking for information about Docker Machine on Windows, which requires that
Hyper-V is enabled, an external network switch is active, and referenced in the
flags for the `docker-machine create` command [as described in the Docker
tangential to using Docker Desktop_, but if you want to use Docker Machine
to create multiple local Virtual Machines (VMs), or to provision remote machines, see the [Docker
Machine](/machine/index.md) topics. This is documented only for users looking for information about Docker Machine on Windows, which requires that Hyper-V is enabled, an external network switch is active, and referenced in the flags for the `docker-machine create` command [as described in the Docker
Machine driver example](/machine/drivers/hyper-v.md#example).
#### Virtualization must be enabled
@@ -332,21 +317,21 @@ Performance tab on the Task Manager:
![Task Manager](images/virtualization-enabled.png){:width="700px"}
If, at some point, if you manually uninstall Hyper-V or disable virtualization,
Docker Desktop for Windows cannot start. See: [Unable to run Docker for Windows on
If you manually uninstall Hyper-V or disable virtualization,
Docker Desktop cannot start. See [Unable to run Docker for Windows on
Windows 10 Enterprise](https://github.com/docker/for-win/issues/74).
### Networking and WiFi problems upon Docker Desktop for Windows install
Some users have encountered networking issues during install and startup of
Docker Desktop for Windows. For example, upon install or auto-reboot, network adapters
and/or WiFi gets disabled. In some scenarios, problems are due to having
Some users may experience networking issues during install and startup of
Docker Desktop. For example, upon install or auto-reboot, network adapters
and/or WiFi may get disabled. In some scenarios, problems are due to having
VirtualBox or its network adapters still installed, but in other scenarios this
is not the case. (See also, Docker Desktop for Windows issue on GitHub: [Enabling
is not the case. See the GitHub issue [Enabling
Hyper-V feature turns my wi-fi
off](https://github.com/docker/for-win/issues/139).)
off](https://github.com/docker/for-win/issues/139).
Here are some steps to take if you encounter similar problems:
Here are some steps to take if you experience similar problems:
1. Ensure **virtualization** is enabled, as described above in [Virtualization
must be enabled](#virtualization-must-be-enabled).
@@ -368,16 +353,16 @@ Here are some steps to take if you encounter similar problems:
5. If previous steps fail to solve the problems, follow steps on the [Cleanup
README](https://github.com/Microsoft/Virtualization-Documentation/blob/master/windows-server-container-tools/CleanupContainerHostNetworking/README.md).
> Read full description before you run Windows cleanup script
> Read the full description before you run the Windows cleanup script.
>
>The cleanup command has two flags, `-Cleanup` and
>`-ForceDeleteAllSwitches`. Read the whole page before running any scripts,
>especially warnings about `-ForceDeleteAllSwitches`. {: .warning}
### Windows containers and Windows Server 2016
### Windows containers and Windows Server
Docker Desktop is not supported on Windows Server 2016, instead you can use
[Docker Enterprise Basic Edition](/ee/index.md) at no aditional cost.
Docker Desktop is not supported on Windows Server. Instead, you can use
[Docker Enterprise Basic](/ee/index.md) at no additional cost.
If you have questions about how to run Windows containers on Windows 10, see
[Switch between Windows and Linux
@@ -388,9 +373,7 @@ A full tutorial is available in [docker/labs](https://github.com/docker/labs) at
Containers](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md).
You can install a native Windows binary which allows you to develop and run
Windows containers without Docker Desktop for Windows. However, if you install Docker
this way, you cannot develop or run Linux containers. If you try to run a Linux
container on the native Docker daemon, an error occurs:
Windows containers without Docker Desktop. However, if you install Docker this way, you cannot develop or run Linux containers. If you try to run a Linux container on the native Docker daemon, an error occurs:
```none
C:\Program Files\Docker\docker.exe:
@@ -464,24 +447,17 @@ For more information, see:
* [Windows NAT capabilities and
limitations](https://blogs.technet.microsoft.com/virtualization/2016/05/25/windows-nat-winnat-capabilities-and-limitations/)
### Running Docker Desktop in nested virtualization scenarios
### Running Docker Desktop for Windows in nested virtualization scenarios
Docker Desktop for Windows can run inside a Windows 10 virtual machine (VM) running on
apps like Parallels or VMware Fusion on a Mac provided that the VM is properly
configured. However, problems and intermittent failures may still occur due to
the way these apps virtualize the hardware. For these reasons, _**Docker Desktop for
Windows is not supported for nested virtualization scenarios**_. It might work
Docker Desktop can run inside a Windows 10 VM running on apps like Parallels or VMware Fusion on a Mac provided that the VM is properly configured. However, problems and intermittent failures may still occur due to the way these apps virtualize the hardware. For these reasons, _**Docker Desktop is not supported in nested virtualization scenarios**_. It might work
in some cases, and not in others.
The better solution is to run Docker Desktop for Windows natively on a Windows system
(to work with Windows or Linux containers), or Docker Desktop for Mac on Mac to work
with Linux containers.
For best results, we recommend you run Docker Desktop natively on a Windows system (to work with Windows or Linux containers), or on Mac to work with Linux containers.
#### If you still want to use nested virtualization
* Make sure nested virtualization support is enabled in VMWare or Parallels.
Check the settings in **Hardware → CPU & Memory → Advanced Options → Enable
Check the settings in **Hardware > CPU & Memory > Advanced Options > Enable
nested virtualization** (the exact menu sequence might vary slightly).
* Configure your VM with at least 2 CPUs and sufficient memory to run your
@@ -512,19 +488,18 @@ with Linux containers.
executed inside a VM which itself runs inside a VM. CPU utilization is also
likely to be higher.
* Ensure "PMU Virtualization" is turned off in Parallels on Macs. Check the
settings in **Hardware → CPU & Memory → Advanced Settings → PMU
Virtualization**
* Ensure "PMU Virtualization" is turned off in Parallels on Macs. Check the
settings in **Hardware > CPU & Memory > Advanced Settings > PMU
Virtualization**.
#### Related issues
Discussion thread on GitHub at [Docker for Windows issue
267](https://github.com/docker/for-win/issues/267)
267](https://github.com/docker/for-win/issues/267).
### Networking issues
Some users have reported problems connecting to Docker Hub on the Docker Desktop for
Windows stable version. (See GitHub issue
Some users have reported problems connecting to Docker Hub on the Docker Desktop stable version. (See GitHub issue
[22567](https://github.com/moby/moby/issues/22567).)
Here is an example command and error message:
@@ -539,23 +514,21 @@ See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
```
As an immediate workaround to this problem, reset the DNS server to use the
Google DNS fixed address: `8.8.8.8`. You can configure this via the **Settings**
→ **Network** dialog, as described in the topic [Network](index.md#network).
Google DNS fixed address: `8.8.8.8`. You can configure this through the **Settings**
> **Network** dialog, as described in the topic [Network](index.md#network).
Docker automatically restarts when you apply this setting, which could take some
time.
We are currently investigating this issue.
### NAT/IP configuration
By default, Docker Desktop for Windows uses an internal network prefix of
By default, Docker Desktop uses an internal network prefix of
`10.0.75.0/24`. Should this clash with your normal network setup, you can change
the prefix from the **Settings** menu. See the [Network](index.md#network) topic
under [Settings](index.md#docker-settings).
## Workarounds
### `inotify` currently does not work on Docker Desktop for Windows
### `inotify` currently does not work on Docker Desktop
If you are using `Node.js` with `nodemon`, a temporary workaround is to try the
fallback polling mode described here: [nodemon isn't restarting node
@@ -576,11 +549,10 @@ consult the shell's documentation.
### Make sure Docker is running for webserver examples
For the `hello-world-nginx` example and others, Docker Desktop for Windows must be
For the `hello-world-nginx` example and others, Docker Desktop must be
running to get to the webserver on `http://localhost/`. Make sure that the
Docker whale is showing in the menu bar, and that you run the Docker commands in
a shell that is connected to the Docker Desktop for Windows Engine (not Engine from
Toolbox). Otherwise, you might start the webserver container but get a "web page
a shell that is connected to the Docker Desktop Engine (not Engine from Toolbox). Otherwise, you might start the webserver container but get a "web page
not available" error when you go to `docker`.
### How to solve `port already allocated` errors
@@ -598,19 +570,16 @@ docker app.
### Docker fails to start when firewall or anti-virus software is installed
**Some firewalls and anti-virus software might be incompatible with Microsoft
Some firewalls and anti-virus software might be incompatible with Microsoft
**Windows 10 builds**, such as Windows 10 Anniversary Update. The conflict
typically occurs after a Windows update or new install of the firewall, and
manifests as an error response from the Docker daemon and a **Docker Desktop for Windows
start failure**. The Comodo Firewall was one example of this problem, but users
report that software has since been updated to work with these Windows 10
builds.
manifests as an error response from the Docker daemon and a **Docker Desktop start failure**. The Comodo Firewall was one example of this problem, but users report that software has since been updated to work with these Windows 10 builds.
See the Comodo forums topics [Comodo Firewall conflict with
Hyper-V](https://forums.comodo.com/bug-reports-cis/comodo-firewall-began-conflict-with-hyperv-t116351.0.html)
and [Windows 10 Anniversary build doesn't allow Comodo drivers to be
installed](https://forums.comodo.com/install-setup-configuration-help-cis/windows-10-aniversary-build-doesnt-allow-comodo-drivers-to-be-installed-t116322.0.html).
A Docker Desktop for Windows user-created issue describes the problem specifically as it
A Docker Desktop user-created issue describes the problem specifically as it
relates to Docker: [Docker fails to start on Windows
10](https://github.com/docker/for-win/issues/27).

View File

@@ -49,7 +49,7 @@ content to many different audiences:
Docker provides a fulfillment service so that ISVs can programmatically entitle
users, by creating subscriptions to their content in Docker Hub. For more
information, see [Bring Your Own License (BYOL) products on Store](byol.md).
information, see [Bring Your Own License (BYOL) products on Hub](byol.md).
### Plugins and agents

View File

@@ -16,15 +16,24 @@ For information on system requirements, installation, and download, see:
For Docker Enterprise Engine release notes, see [Docker Engine release notes](/engine/release-notes).
## Version 2.1.0.3
2019-08-21
2019-08-29
Docker Desktop Enterprise 2.1.0.3 contains a Kubernetes upgrade. Note that your local Kubernetes cluster will be reset after installing this version.
### Upgrades
Mac: [Hyperkit 0.20190802](https://github.com/moby/hyperkit/releases/tag/v0.20190802)
- [Docker 19.03.2](https://docs.docker.com/engine/release-notes/) in Version Pack Enterprise 3.0
- [Kubernetes 1.14.6](https://github.com/kubernetes/kubernetes/releases/tag/v1.14.6) in Version Pack Enterprise 3.0
- [Go 1.12.9](https://github.com/golang/go/issues?q=milestone%3AGo1.12.9+label%3ACherryPickApproved) in Version Pack Enterprise 3.0
- [Qemu 4.1.0](https://github.com/docker/binfmt) to cross-compile ARM devices
- Application Designer 0.1.6
- Mac: [Hyperkit 0.20190802](https://github.com/moby/hyperkit/releases/tag/v0.20190802)
### Bug fixes and minor changes
Restricted the `cluster-admin` role on local Kubernetes cluster to `kube-system` namespace.
- Restricted the `cluster-admin` role on local Kubernetes cluster to `kube-system` namespace.
- Mac: Docker Desktop checks the `admin-settings.json` file and enforces the CLI config whenever Docker Engine is restarted.
- Windows: Updated the Access Control List (ACL) on `cli-plugins` and `version-bin` folders to ensure only administrators have read/write access to these folders.
## Version 2.1.0.2
2019-07-26

View File

@@ -8,7 +8,7 @@ Starting in DTR 2.6, switching storage backends initializes a new metadata store
## DTR 2.6.4 and above
In DTR 2.6.4, a new flag, `--storage-migrated`, [has been added to `docker/dtr reconfigure`](/reference/dtr/2.6/cli/reconfigure/) which lets you indicate the migration status of your storage data during a reconfigure. If you are not worried about losing your existing tags, you can skip the recommended steps below and [perform a reconfigure](/reference/dtr/2.6/cli/reconfigure/).
In DTR 2.6.4, a new flag, `--storage-migrated`, [has been added to `docker/dtr reconfigure`](/reference/dtr/2.7/cli/reconfigure/) which lets you indicate the migration status of your storage data during a reconfigure. If you are not worried about losing your existing tags, you can skip the recommended steps below and [perform a reconfigure](/reference/dtr/2.7/cli/reconfigure/).
### Best practice for data migration
@@ -18,50 +18,50 @@ Docker recommends the following steps for your storage backend and metadata migr
![](/ee/dtr/images/garbage-collection-0.png){: .img-fluid .with-border}
2. [Back up your existing metadata](/ee/dtr/admin/disaster-recovery/create-a-backup/#back-up-dtr-metadata). See [docker/dtr backup](/reference/dtr/2.6/cli/backup/) for CLI command description and options.
2. [Back up your existing metadata](/ee/dtr/admin/disaster-recovery/create-a-backup/#back-up-dtr-metadata). See [docker/dtr backup](/reference/dtr/2.7/cli/backup/) for CLI command description and options.
3. Migrate the contents of your current storage backend to the new one you are switching to. For example, upload your current storage data to your new NFS server.
4. [Restore DTR from your backup](/ee/dtr/admin/disaster-recovery/restore-from-backup/) and specify your new storage backend. See [docker/dtr destroy](/reference/dtr/2.6/cli/destroy/) and [docker/dtr restore](/reference/dtr/2.6/cli/backup/) for CLI command descriptions and options.
4. [Restore DTR from your backup](/ee/dtr/admin/disaster-recovery/restore-from-backup/) and specify your new storage backend. See [docker/dtr destroy](/reference/dtr/2.7/cli/destroy/) and [docker/dtr restore](/reference/dtr/2.7/cli/backup/) for CLI command descriptions and options.
5. With DTR restored from your backup and your storage data migrated to your new backend, garbage collect any dangling blobs using the following API request:
```bash
curl -u <username>:$TOKEN -X POST "https://<dtr-url>/api/v0/jobs" -H "accept: application/json" -H "content-type: application/json" -d "{ \"action": \"onlinegc_blobs\" }"
```
```
On success, you should get a `202 Accepted` response with a job `id` and other related details. This ensures any blobs which are not referenced in your previously created backup get destroyed.
### Alternative option for data migration
If you have a long maintenance window, you can skip some steps from above and do the following:
1. Put DTR in "read-only" mode using the following API request:
```bash
curl -u <username>:$TOKEN -X POST "https://<dtr-url>/api/v0/meta/settings" -H "accept: application/json" -H "content-type: application/json" -d "{ \"readOnlyRegistry\": true }"
```
```
On success, you should get a `202 Accepted` response.
2. Migrate the contents of your current storage backend to the new one you are switching to. For example, upload your current storage data to your new NFS server.
3. [Reconfigure DTR](/reference/dtr/2.6/cli/reconfigure) while specifying the `--storage-migrated` flag to preserve your existing tags.
3. [Reconfigure DTR](/reference/dtr/2.7/cli/reconfigure) while specifying the `--storage-migrated` flag to preserve your existing tags.
## DTR 2.6.0-2.6.4 and DTR 2.5 (with experimental garbage collection)
Make sure to [perform a backup](/ee/dtr/admin/disaster-recovery/create-a-backup/#back-up-dtr-data) before you change your storage backend when running DTR 2.5 (with online garbage collection) and 2.6.0-2.6.3. If you encounter an issue with lost tags, refer to the following resources:
* For changes to reconfigure and restore options in DTR 2.6, see [docker/dtr reconfigure](/reference/dtr/2.6/cli/reconfigure/) and [docker/dtr restore](/reference/dtr/2.6/cli/restore).
* For changes to reconfigure and restore options in DTR 2.6, see [docker/dtr reconfigure](/datacenter/dtr/2.6/reference/cli/reconfigure/) and [docker/dtr restore](/datacenter/dtr/2.6/reference/cli/restore/).
* For Docker's recommended recovery strategies, see [DTR 2.6 lost tags after reconfiguring storage](https://success.docker.com/article/dtr-26-lost-tags-after-reconfiguring-storage).
* For NFS-specific changes, see [Use NFS](nfs.md).
* For NFS-specific changes, see [Use NFS](nfs.md).
* For S3-specific changes, see [Learn how to configure DTR with Amazon S3](s3.md).
Upgrade to [DTR 2.6.4](#dtr-264-and-above) and follow [best practice for data migration](#best-practice-for-data-migration) to avoid the wiped tags issue when moving from one NFS serverto another.
Upgrade to [DTR 2.6.4](#dtr-264-and-above) and follow [best practice for data migration](#best-practice-for-data-migration) to avoid the wiped tags issue when moving from one NFS serverto another.
## Where to go next
- [Use NFS](nfs.md)
- [Use S3](s3.md)
- CLI reference pages
- [docker/dtr install](/reference/dtr/2.6/cli/install/)
- [docker/dtr reconfigure](/reference/dtr/2.6/cli/reconfigure/)
- [docker/dtr install](/reference/dtr/2.7/cli/install/)
- [docker/dtr reconfigure](/reference/dtr/2.7/cli/reconfigure/)

View File

@@ -15,6 +15,13 @@ infrastructure meets the [system requirements](./system-requirements) that DTR n
## Step 2. Install UCP
>**Note**
>
> Before installing DTR:
> * When upgrading, upgrade UCP before DTR for each major version. For example, if you are upgrading four major versions, upgrade one major version at a time, first UCP, then DTR, and then repeat for the remaining three versions.
> * UCP should be installed or upgraded to the most recent version before an initial install of DTR.
> * Docker Engine should be updated to the most recent version before installing or updating UCP.
Since DTR requires Docker Universal Control Plane (UCP)
to run, you need to [install UCP](/ee/ucp/admin/install/) on all the nodes where you plan to install DTR.
@@ -26,7 +33,7 @@ You cannot install DTR on a standalone Docker Engine.
## Step 3. Install DTR
Once UCP is installed, navigate to the UCP web interface as an admin. Expand your profile on the left
Once UCP is installed, navigate to the UCP web interface as an admin. Expand your profile on the left
navigation pane, and select **Admin Settings > Docker Trusted Registry**.
![](../../images/install-dtr-2.png){: .with-border}
@@ -51,7 +58,7 @@ installed on the ucp worker defined by the `--ucp-node` flag.
As an example, you could SSH into a UCP node and run the DTR install command
from there. Running the installation command in interactive TTY or `-it` mode
means you will be prompted for any required additional information. [Learn
more about installing DTR](/reference/dtr/2.7/cli/install/).
more about installing DTR](/reference/dtr/2.7/cli/install/).
To install a specific version of DTR, replace `{{ page.dtr_version }}` with your
desired version in the [installation command](#step-3-install-dtr) above. Find
@@ -81,8 +88,8 @@ DTR listed as a stack.
To verify that DTR is accessible from the browser, enter your DTR IP address or FQDN on the address bar.
Since [HSTS (HTTP Strict-Transport-Security)
header](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) is included in all API responses,
make sure to specify the FQDN (Fully Qualified Domain Name) of your DTR prefixed with `https://`,
header](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) is included in all API responses,
make sure to specify the FQDN (Fully Qualified Domain Name) of your DTR prefixed with `https://`,
or your browser may refuse to load the web interface.
![](../../images/create-repository-1.png){: .with-border}
@@ -97,11 +104,11 @@ After installing DTR, you should configure:
### Web interface
* To update your TLS certificates, access DTR from the browser and navigate to **System > General**.
* To update your TLS certificates, access DTR from the browser and navigate to **System > General**.
* To configure your storage backend, navigate to **System > Storage**. If you are upgrading and changing your existing storage backend, see [Switch storage backends](/ee/dtr/admin/configure/external-storage/storage-backend-migration/) for recommended steps.
### Command line interface
To reconfigure DTR using the CLI, see the reference page for [the reconfigure command](/reference/dtr/2.7/cli/reconfigure/).
## Step 6. Test pushing and pulling
@@ -122,7 +129,7 @@ you can add more replicas to your DTR cluster. Adding more replicas allows you
to load-balance requests across all replicas, and keep DTR working if a
replica fails.
For high-availability, you should set 3 or 5 DTR replicas. The replica nodes also need
For high-availability, you should set 3 or 5 DTR replicas. The replica nodes also need
to be managed by the same UCP.
To add replicas to a DTR cluster, use the [join](/reference/dtr/2.7/cli/join/) command:
@@ -143,13 +150,13 @@ To add replicas to a DTR cluster, use the [join](/reference/dtr/2.7/cli/join/) c
--ucp-node <ucp-node-name> \
--ucp-insecure-tls
```
> --ucp-node
>
> The `<ucp-node-name>` following the `--ucp-node` flag is the target node to
> install the DTR replica. This is NOT the UCP Manager URL.
{: .important}
3. Check that all replicas are running.
In your browser, navigate to UCP's

View File

@@ -22,10 +22,24 @@ to upgrade your installation to the latest release.
# Version 2.7
## 2.7.2
(2019-8-29)
### Bug fixes
* Fixed a bug which prevented non-admin users from creating or editing promotion policies. (docker/dhe-deploy #10551)
* Fixed an issue where promotion policy details could not be displayed. (docker/dhe-deploy #10510)
### Security
* Updated the Go programming language version for DTR to `1.12.9`. (docker/dhe-deploy #10570)
## 2.7.1
(2019-7-22)
### Bug Fixes
* In 2.7.0 users may see ```vuln_db_update``` jobs fail with the message ```Unable to get update url: Could not get signed urls with errors``` -- 2.7.1 addresses this issue. With it your vulnerability database update jobs should succeed.
### Bug fixes
* In 2.7.0, users may see ```vuln_db_update``` jobs fail with the message ```Unable to get update url: Could not get signed urls with errors``` -- 2.7.1 addresses this issue. With it your vulnerability database update jobs should succeed.
## 2.7.0
(2019-7-22)
@@ -90,6 +104,13 @@ Refer to [DTR image vulnerabilities](https://success.docker.com/article/dtr-imag
# Version 2.6
## 2.6.9
(2019-8-28)
### Security
* Updated the Go programming language version for DTR to `1.12.9`. (docker/dhe-deploy #10557)
## 2.6.8
(2019-7-17)
@@ -395,12 +416,18 @@ Refer to [DTR image vulnerabilities](https://success.docker.com/article/dtr-imag
# Version 2.5
> **Important DTR Upgrade Information**
> If you have manifest lists enabled on any of your repositories:
>
> Upgrade path from 2.5.x to 2.6: Upgrade directly to 2.6.4.
## 2.5.14
(2019-8-28)
### Security
* Updated the Go programming language version for DTR to `1.12.9`. (docker/dhe-deploy #10558)
## 2.5.13
(2019-07-17)
@@ -987,6 +1014,13 @@ specify `--log-protocol`.
> Upgrade path from 2.4.x to 2.5: Do not opt into garbage collection, or directly upgrade to 2.5.10 if you need to opt into garbage collection.
> Upgrade path from 2.5.x to 2.6: Upgrade directly to 2.6.4.
## 2.4.14
(2019-8-28)
### Security
* Updated the Go programming language version for DTR to `1.12.9`. (docker/dhe-deploy #10554)
## 2.4.13
(2019-07-17)

View File

@@ -110,4 +110,20 @@ Subnets must be tagged with ` kubernetes.io/cluster/<UniqueID for Cluster>` and
## UCP
### UCP install
Pass `--cloud-providers=aws` to the installation.
Once all pre-requisities have been met, run the following command to install
UCP on a manager node. The `--host-address` flag maps to the private IP address
of the master node.
```bash
$ docker container run --rm -it \
--name ucp \
--volume /var/run/docker.sock:/var/run/docker.sock \
{{ page.ucp_org }}/{{ page.ucp_repo }}:{{ page.ucp_version }} install \
--host-address <ucp-ip> \
--cloud-provider aws \
--interactive
```
The full Docker UCP install CLI reference can be found
[here](/reference/ucp/3.2/cli/install/)

View File

@@ -86,19 +86,10 @@ parameters as is.
"aadClientId": "***",
"aadClientSecret": "***",
"resourceGroup": "***",
"location": "****",
"subnetName": "/****",
"securityGroupName": "****",
"vnetName": "****",
"cloudProviderBackoff": false,
"cloudProviderBackoffRetries": 0,
"cloudProviderBackoffExponent": 0,
"cloudProviderBackoffDuration": 0,
"cloudProviderBackoffJitter": 0,
"cloudProviderRatelimit": false,
"cloudProviderRateLimitQPS": 0,
"cloudProviderRateLimitBucket": 0,
"useManagedIdentityExtension": false,
"location": "***",
"subnetName": "***",
"securityGroupName": "***",
"vnetName": "***",
"useInstanceMetadata": true
}
```

View File

@@ -42,22 +42,79 @@ this.
## Avoid IP range conflicts
Swarm uses a default address pool of `10.0.0.0/8` for its overlay networks. If this conflicts with your current network implementation, please use a custom IP address pool. To specify a custom IP address pool, use the `--default-address-pool` command line option during [Swarm initialization](../../../../engine/swarm/swarm-mode.md).
Engine `fixed-cidr` - CIDR range for `docker0` interface and local containers, default `172.17.0.0/16`.
Engine `default-address-pools` - CIDR range for `docker_gwbridge` interface and bridge networks, default `172.18.0.0/16`.
Swarm `default-addr-pool` - CIDR range for Swarm overlay networks, default `10.0.0.0/8`.
Kubernetes `pod-cidr` - CIDR range for Kubernetes pods, default `192.168.0.0/16`.
Kubernetes `service-cluster-ip-range` - CIDR range for Kubernetes services, default `10.96.0.0/16`.
> **Note**: Currently, the UCP installation process does not support this flag. To deploy with a custom IP pool, Swarm must first be installed using this flag and UCP must be installed on top of it.
### Engine
### Kubernetes IP Range Conflicts
There are two IP ranges used by the engine for the `docker0` and `docker_gwbridge` interface:
#### docker0
By default, the Docker engine creates and configures the host system with a network interface called `docker0`, which is an ethernet bridge device. If you don't specify a different network when starting a container, the container is connected to the bridge and all traffic coming from and going to the container flows over the bridge to the Docker engine, which handles routing on behalf of the container.
Docker engine creates `docker0` with a configurable IP range. Containers which are connected to the default bridge are allocated IP addresses within this range. Certain default settings apply to `docker` unless you specify otherwise. The default subnet for `docker0` is `172.17.0.0/16`.
The recommended way to configure the `docker0` settings is to use the `daemon.json` file. You can specify one or more of the following settings to configure the `docker0` interface:
```json
{
"bip": "172.17.0.1/16",
"fixed-cidr": "172.17.0.0/16",
}
```
`bip`: Supply a specific bridge IP range for the `docker0` interface, using standard CIDR notation. Default is `172.17.0.1/16`.
`fixed-cidr`: Restrict the IP range for `docker0`, using standard CIDR notation. Default is `172.17.0.0/16`.
This range must be an IPv4 range for fixed IPs, and must be a subset of the bridge IP range (`bip` in `daemon.json`). For example, with `172.17.0.0/17`, IPs for your containers will be chosen from the first half of addresses(`172.17.0.1` - `172.17.127.254`) included in the `bip`(`172.17.0.0/16`) subnet.
#### docker_gwbridge
The `docker_gwbridge` is a virtual bridge that connects the overlay networks (including the `ingress` network) to an individual Docker engine's physical network. Docker creates it automatically when you initialize a swarm or join a Docker host to a swarm, but it is not a Docker device. It exists in the kernel of the Docker host. The default subnet for `docker_gwbridge` is `172.18.0.0/16`.
> **Note**: If you need to customize the `docker_gwbridge` settings, you must do so before joining the host to the swarm, or after temporarily removing the host from the swarm.
The recommended way to configure the `docker_gwbridge` settings is to use the `daemon.json` file. You can specify one or more of the following settings to configure the interface:
```json
{
"default-address-pools": [
{"base":"172.18.0.0/16","size":24},
{"base":"###.###.###.###/##","size":##}
]
}
```
`default-address-pools`: A list of IP address pools for local bridge networks, the default is a single pool `{"base":"172.18.0.0/16","size":24}`. This allocates `/24` network from the `172.18.0.0/16` CIDR range for local bridge networks. Each entry in the list contain the following:
`base`: CIDR range to be divided up for bridge networks, the default is `172.18.0.0/16`
`size`: CIDR netmask that determines the default network size to allocate from the `base` pool, the default is `24`
### Swarm
Swarm uses a default address pool of `10.0.0.0/8` for its overlay networks. If this conflicts with your current network implementation, please use a custom IP address pool. To specify a custom IP address pool, use the `--default-addr-pool` command line option during [Swarm initialization](../../../../engine/swarm/swarm-mode.md).
> **Note**: The Swarm `default-addr-pool` setting is separate from the Docker engine `default-address-pools` setting. They are two separate ranges that are used for different purposes.
> **Note**: Currently, the UCP installation process does not support this flag. To deploy with a custom IP pool, Swarm must first be initialized using this flag and UCP must be installed on top of it.
### Kubernetes
There are 2 internal IP ranges used within Kubernetes that may overlap and
conflict with the underlying infrastructure:
- The Pod Network - Each Pod in Kubernetes is given an IP address from either
* The Pod Network - Each Pod in Kubernetes is given an IP address from either
the Calico or Azure IPAM services. In a default installation Pods are given
IP addresses on the `192.168.0.0/16` range. This can be customised at install
time using the `--pod-cidr` flag.
IP addresses on the `192.168.0.0/16` range. This can be customized at install
time using the `--pod-cidr` flag.
- The Services Network - When a user exposes a Service in Kubernetes it is
accesible via a VIP, this VIP comes from a Cluster IP Range. By default on UCP
* The Services Network - When a user exposes a Service in Kubernetes it is
accessible via a VIP, this VIP comes from a Cluster IP Range. By default on UCP
this range is `10.96.0.0/16`. From UCP 3.1.8 and onwards this value can be
changed at install time with the `--service-cluster-ip-range` flag.
@@ -96,8 +153,8 @@ DTR, your load balancer needs to distinguish traffic between the two by IP
address or port number.
* If you want to configure your load balancer to listen on port 443:
* Use one load balancer for UCP and another for DTR,
* Use the same load balancer with multiple virtual IPs.
* Use one load balancer for UCP and another for DTR,
* Use the same load balancer with multiple virtual IPs.
* Configure your load balancer to expose UCP or DTR on a port other than 443.
If you want to install UCP in a high-availability configuration that uses
@@ -133,6 +190,6 @@ manager nodes joining the cluster or being promoted to a manager role.
## Where to go next
- [System requirements](system-requirements.md)
- [Install UCP](index.md)
* [System requirements](system-requirements.md)
* [Install UCP](index.md)

View File

@@ -25,10 +25,6 @@ security, and deployment details.
1. Select a storage provider from the list of [available CSI drivers](https://kubernetes-csi.github.io/docs/drivers.html)
or as documented by your storage vendor.
> Disclaimer: As of Docker Enterprise 3.0, none of the [available CSI drivers](https://kubernetes-csi.github.io/docs/drivers.html)
are production quality and are considered pre-GA.
2. Install Docker Enterprise 3.0, which includes UCP 3.2.
3. Optionally, set the `--storage-expt-enabled` flag in the UCP install configuration if you want to enable
experimental storage features in Kubernetes 1.14. Features that are enabled include `VolumeSnapshotDataSource`,

View File

@@ -57,20 +57,30 @@ services:
wordpress:
image: wordpress
networks:
- wp
ports:
- 8080:80
environment:
WORDPRESS_DB_PASSWORD: example
deploy:
deploy:
labels:
com.docker.ucp.access.label: /Shared/wordpress
mysql:
image: mysql:5.7
networks:
- wp
environment:
MYSQL_ROOT_PASSWORD: example
deploy:
deploy:
labels:
com.docker.ucp.access.label: /Shared/wordpress
networks:
wp:
driver: overlay
labels:
com.docker.ucp.access.label: /Shared/wordpress
```
To deploy the application:
@@ -96,6 +106,21 @@ To confirm that the service deployed to the `/Shared/wordpress` collection:
![](../images/deploy-stack-to-collection-2.png){: .with-border}
### Notes
It is important to note that by default Docker Stacks will create a default `overlay`
network for your stack. It will be
attached to each container that is deployed. This works if you have full control over
your Default Collection or are an administrator. If your administrators have locked
down UCP to only allow you access to specific collections and you manage multiple
collections, then it can get very difficult to manage the networks as well and you
might run into permissions errors. To fix this, you must define a custom network
and attach that to each service. The network must have the same `com.docker.ucp.access.label`
Label as your service. If configured correctly, then your network will correctly
be grouped with the other resources in your stack.
## Where to go next
- [Deploy a Compose-based app to a Kubernetes cluster](../kubernetes/deploy-with-compose.md)

View File

@@ -4,9 +4,9 @@ description: Learn how to install kubectl, the Kubernetes command-line tool, on
keywords: ucp, cli, administration, kubectl, Kubernetes
---
Docker EE 2.0 and higher deploys Kubernetes as part of a UCP installation.
Docker Enterprise 2.0 and higher deploys Kubernetes as part of a UCP installation.
Deploy, manage, and monitor Kubernetes workloads from the UCP dashboard. Users can
also interact with the Kubernetes deployment through the Kubernetes
also interact with the Kubernetes deployment through the Kubernetes
command-line tool named kubectl.
To access the UCP cluster with kubectl, install the [UCP client bundle](cli.md).
@@ -28,10 +28,10 @@ To use kubectl, install the binary on a workstation which has access to your UCP
> Kubernetes only guarantees compatibility with kubectl versions that are +/-1 minor versions away from the Kubernetes version.
{: .important}
First, find which version of Kubernetes is running in your cluster. This can be found
within the Universal Control Plane dashboard or at the UCP API endpoint [version](/reference/ucp/3.2/api/).
First, find which version of Kubernetes is running in your cluster. This can be found
within the Universal Control Plane dashboard or at the UCP API endpoint [version](/reference/ucp/3.2/api/). You can also find the Kubernetes version using the Docker CLI. You need to source a client bundle and type the `docker version` command.
From the UCP dashboard, click on **About Docker EE** within the **Admin** menu in the top left corner
From the UCP dashboard, click **About** within the **Admin** menu in the top left corner
of the dashboard. Then navigate to **Kubernetes**.
![Find Kubernetes version](../images/kubernetes-version.png){: .with-border}
@@ -91,14 +91,31 @@ curl https://storage.googleapis.com/kubernetes-release/release/$env:k8sversion/b
</div>
</div>
## Using kubectl with a Docker EE cluster
## Using kubectl with a Docker Enterprise cluster
Docker Enterprise Edition provides users unique certificates and keys to authenticate against
the Docker and Kubernetes APIs. Instructions on how to download these certificates and how to
Docker Enterprise provides users unique certificates and keys to authenticate against
the Docker and Kubernetes APIs. Instructions on how to download these certificates and how to
configure kubectl to use them can be found in [CLI-based access.](cli.md#download-client-certificates)
## Install Helm on Docker Enterprise
Helm is the package manager for Kubernetes. Tiller is the Helm server. Before installing Helm on Docker Enterprise, you must meet the following requirements:
* You must be running a Docker Enterprise 2.1 or higher cluster.
* You must have kubectl configured to communicate with the cluster (usually this is done via a client bundle).
To use Helm and Tiller with UCP, you must grant the default service account within the kube-system namespace the necessary roles. Enter the following kubectl commands in this order:
```bash
kubectl create rolebinding default-view --clusterrole=view --serviceaccount=kube-system:default --namespace=kube-system
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
```
It is recommended that you specify a Role and RoleBinding to limit Tiller’s scope to a particular namespace, as described in [Helm’s documentation](https://helm.sh/docs/using_helm/#example-deploy-tiller-in-a-namespace-restricted-to-deploying-resources-only-in-that-namespace).
See [initialize Helm and install Tiller](https://helm.sh/docs/using_helm/#initialize-helm-and-install-tiller) for more information.
## Where to go next
- [Deploy a workload to a Kubernetes cluster](../kubernetes.md)
- [Deploy to Kubernetes on Docker Desktop for Mac](/docker-for-mac/kubernetes.md)

View File

@@ -181,7 +181,7 @@ be something like `--tag=friendlyhello:v0.0.1`.
> _Proxy server settings_
>
> Proxy servers can block connections to your web app once it's up and running.
> If you are behind a proxy server, add the following lines to your
> If you are behind a proxy server, add the following lines before `RUN pip` in your
> Dockerfile, using the `ENV` command to specify the host and port for your
> proxy servers:
>
@@ -213,6 +213,21 @@ be something like `--tag=friendlyhello:v0.0.1`.
> `sudo service docker restart`
>
> Once fixed, retry to run the `build` command.
>
> _MTU settings_
>
> If the MTU (default is 1500) on the default bridge network is greater than the MTU of the host external network, then `pip` fails. Set the MTU of the docker bridge network to match that of the host by editing (or creating) the configuration file at `/etc/docker/daemon.json` with the `mtu` key, as follows:
>
> ```json
>{
> "mtu": 1450
>}
> ```
> Before proceeding, save `daemon.json` and restart the docker service.
>
> `sudo systemctl restart docker`
>
> Re-run the `build` command.
## Run the app

View File

@@ -14,7 +14,7 @@ toc_max: 4
To get started with Docker Engine - Community on Ubuntu, make sure you
[meet the prerequisites](#prerequisites), then
[install Docker](#install-docker-ce).
[install Docker](#install-docker-engine---community-1).
## Prerequisites

View File

@@ -21,3 +21,4 @@ title: Machine drivers
- [VMware Workstation](https://github.com/pecigonzalo/docker-machine-vmwareworkstation) (unofficial plugin, not supported by Docker)
- [Grid 5000](https://github.com/Spirals-Team/docker-machine-driver-g5k) (unofficial plugin, not supported by Docker)
- [Scaleway](https://github.com/scaleway/docker-machine-driver-scaleway) (unofficial plugin, not supported by Docker)
- [Hetzner Cloud](https://github.com/JonasProgrammer/docker-machine-driver-hetzner) (unofficial plugin, not supported by Docker)

View File

@@ -34,7 +34,7 @@ on GitHub.
```console
$ base=https://github.com/docker/machine/releases/download/v{{site.machine_version}} &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
sudo mv /tmp/docker-machine /usr/local/bin/docker-machine
```
If you are running **Windows** with [Git BASH](https://git-for-windows.github.io/){: target="_blank" class="_"}:

View File

@@ -26,8 +26,9 @@ rule restricts external access to all IP addresses except 192.168.1.1:
$ iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.1 -j DROP
```
You could instead allow connections from a source subnet. The following rule
only allows access from the subnet 192.168.1.0/24:
Please note that you will need to change `ext_if` to correspond with your
host's actual external interface. You could instead allow connections from a
source subnet. The following rule only allows access from the subnet 192.168.1.0/24:
```bash
$ iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.0/24 -j DROP

View File

@@ -8,7 +8,10 @@ This document describes basic use of the Notary CLI as a tool supporting Docker
Content Trust. For more advanced use cases, you must
[run your own Notary service](running_a_service.md). Read the
[use the Notary client for advanced users](advanced_usage.md) documentation.
> **Warning**: This implementation DOES NOT qualify under the scope of Docker-ee support.
{:.warning}
## What is Notary
Notary is a tool for publishing and managing trusted collections of content.

View File

@@ -115,36 +115,4 @@ Save the file and reload Docker for the change to take effect.
> ```
>
> It's telling you that the file doesn't exist yet in the local cache and is
> being pulled from upstream.
## Use case: the China registry mirror
The URL of the registry mirror for China is `registry.docker-cn.com`. You can
pull images from this mirror just like you do for other registries by
specifying the full path, including the registry, in your `docker pull`
command, for example:
```bash
$ docker pull registry.docker-cn.com/library/ubuntu
```
You can add `"https://registry.docker-cn.com"` to the `registry-mirrors` array
in [`/etc/docker/daemon.json`](/engine/reference/commandline/dockerd.md#daemon-configuration-file)
to pull from the China registry mirror by default.
```json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
```
Save the file and reload Docker for the change to take effect.
Or, you can configure the Docker daemon with the `--registry-mirror` startup
parameter:
```bash
$ dockerd --registry-mirror=https://registry.docker-cn.com
```
> being pulled from upstream.

View File

@@ -474,7 +474,13 @@ Volumes are useful for backups, restores, and migrations. Use the
### Backup a container
For example, in the next command, we:
For example, create a new container named `dbstore`:
```
$ docker run -v /dbdata --name dbstore ubuntu /bin/bash
```
Then in the next command, we:
- Launch a new container and mount the volume from the `dbstore` container
- Mount a local host directory as `/backup`