diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d9c125d19f..89d5f282ea 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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. diff --git a/README.md b/README.md index 5a17b4841c..b3a1f147a9 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/_data/toc.yaml b/_data/toc.yaml index d2c7a5c759..2ee37e8adb 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -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: diff --git a/_includes/kubernetes-mac-win.md b/_includes/kubernetes-mac-win.md index 3246e30ceb..d1800b670a 100644 --- a/_includes/kubernetes-mac-win.md +++ b/_includes/kubernetes-mac-win.md @@ -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. diff --git a/cluster/aws.md b/cluster/aws.md index 7a002c8ecf..3a0626285b 100644 --- a/cluster/aws.md +++ b/cluster/aws.md @@ -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 diff --git a/compose/compose-file/compose-file-v2.md b/compose/compose-file/compose-file-v2.md index 6ee0c66246..66950b02d3 100644 --- a/compose/compose-file/compose-file-v2.md +++ b/compose/compose-file/compose-file-v2.md @@ -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`. diff --git a/compose/index.md b/compose/index.md index bec38c03b7..becf5b50aa 100644 --- a/compose/index.md +++ b/compose/index.md @@ -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 diff --git a/config/containers/logging/awslogs.md b/config/containers/logging/awslogs.md index f46b92359c..79f0e824fe 100644 --- a/config/containers/logging/awslogs.md +++ b/config/containers/logging/awslogs.md @@ -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 diff --git a/config/containers/logging/configure.md b/config/containers/logging/configure.md index 4d44f688c4..ddf7be4d91 100644 --- a/config/containers/logging/configure.md +++ b/config/containers/logging/configure.md @@ -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 diff --git a/config/containers/logging/json-file.md b/config/containers/logging/json-file.md index ddcd53efe7..0cd42351c8 100644 --- a/config/containers/logging/json-file.md +++ b/config/containers/logging/json-file.md @@ -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 (`"`). diff --git a/develop/develop-images/build_enhancements.md b/develop/develop-images/build_enhancements.md index 2128707160..cb61eeec65 100644 --- a/develop/develop-images/build_enhancements.md +++ b/develop/develop-images/build_enhancements.md @@ -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 diff --git a/develop/develop-images/dockerfile_best-practices.md b/develop/develop-images/dockerfile_best-practices.md index 0cdc2c4e83..33ca9a15eb 100644 --- a/develop/develop-images/dockerfile_best-practices.md +++ b/develop/develop-images/dockerfile_best-practices.md @@ -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 <qemu-static 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 multi-architecture Docker images 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 < 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. diff --git a/docker-for-windows/docker-toolbox.md b/docker-for-windows/docker-toolbox.md index 7e8db8d637..589d2a28b9 100644 --- a/docker-for-windows/docker-toolbox.md +++ b/docker-for-windows/docker-toolbox.md @@ -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\\.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 diff --git a/docker-for-windows/faqs.md b/docker-for-windows/faqs.md index 3be9e5b0a8..d50c0328be 100644 --- a/docker-for-windows/faqs.md +++ b/docker-for-windows/faqs.md @@ -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. -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.
+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/:/client.cert` and -`~/.docker/certs.d/:/client.key`. +`~/.docker/certs.d/:/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. diff --git a/docker-for-windows/images/diagnose-feedback.png b/docker-for-windows/images/diagnose-feedback.png index b3b7b0a039..6fff4ab8ac 100644 Binary files a/docker-for-windows/images/diagnose-feedback.png and b/docker-for-windows/images/diagnose-feedback.png differ diff --git a/docker-for-windows/images/diagnostic-id.png b/docker-for-windows/images/diagnostic-id.png index c5ec51c099..918ac304d9 100644 Binary files a/docker-for-windows/images/diagnostic-id.png and b/docker-for-windows/images/diagnostic-id.png differ diff --git a/docker-for-windows/images/docker-app-search.png b/docker-for-windows/images/docker-app-search.png index 24ec95c12d..42361f6110 100644 Binary files a/docker-for-windows/images/docker-app-search.png and b/docker-for-windows/images/docker-app-search.png differ diff --git a/docker-for-windows/images/docker-app-welcome.png b/docker-for-windows/images/docker-app-welcome.png index 786f4cc521..753859ffc9 100644 Binary files a/docker-for-windows/images/docker-app-welcome.png and b/docker-for-windows/images/docker-app-welcome.png differ diff --git a/docker-for-windows/images/docker-menu-context-switch.png b/docker-for-windows/images/docker-menu-context-switch.png index f243e02cc5..79d1809fca 100644 Binary files a/docker-for-windows/images/docker-menu-context-switch.png and b/docker-for-windows/images/docker-menu-context-switch.png differ diff --git a/docker-for-windows/images/docker-menu-settings.png b/docker-for-windows/images/docker-menu-settings.png index 12ec3f2ba0..33ad559d13 100644 Binary files a/docker-for-windows/images/docker-menu-settings.png and b/docker-for-windows/images/docker-menu-settings.png differ diff --git a/docker-for-windows/images/docker-menu-switch.png b/docker-for-windows/images/docker-menu-switch.png index d5766c5296..12bce7bac4 100644 Binary files a/docker-for-windows/images/docker-menu-switch.png and b/docker-for-windows/images/docker-menu-switch.png differ diff --git a/docker-for-windows/images/settings-advanced.png b/docker-for-windows/images/settings-advanced.png index b8e1b63add..26572c8cf1 100644 Binary files a/docker-for-windows/images/settings-advanced.png and b/docker-for-windows/images/settings-advanced.png differ diff --git a/docker-for-windows/images/settings-daemon-advanced.png b/docker-for-windows/images/settings-daemon-advanced.png index 6ad98a29f6..b67389e62e 100644 Binary files a/docker-for-windows/images/settings-daemon-advanced.png and b/docker-for-windows/images/settings-daemon-advanced.png differ diff --git a/docker-for-windows/images/settings-daemon-basic.png b/docker-for-windows/images/settings-daemon-basic.png index 75cf762f0a..09fcb03133 100644 Binary files a/docker-for-windows/images/settings-daemon-basic.png and b/docker-for-windows/images/settings-daemon-basic.png differ diff --git a/docker-for-windows/images/settings-general.png b/docker-for-windows/images/settings-general.png index 80b4c86eea..5586014b6a 100644 Binary files a/docker-for-windows/images/settings-general.png and b/docker-for-windows/images/settings-general.png differ diff --git a/docker-for-windows/images/settings-kubernetes.png b/docker-for-windows/images/settings-kubernetes.png index 80285a50fd..f70068902d 100644 Binary files a/docker-for-windows/images/settings-kubernetes.png and b/docker-for-windows/images/settings-kubernetes.png differ diff --git a/docker-for-windows/images/settings-network.png b/docker-for-windows/images/settings-network.png index 0d5477e55d..f07930021d 100644 Binary files a/docker-for-windows/images/settings-network.png and b/docker-for-windows/images/settings-network.png differ diff --git a/docker-for-windows/images/settings-proxies.png b/docker-for-windows/images/settings-proxies.png index d404ae3c9e..071c060bb4 100644 Binary files a/docker-for-windows/images/settings-proxies.png and b/docker-for-windows/images/settings-proxies.png differ diff --git a/docker-for-windows/images/settings-reset.png b/docker-for-windows/images/settings-reset.png index 18c5b5ecc6..561e02470b 100644 Binary files a/docker-for-windows/images/settings-reset.png and b/docker-for-windows/images/settings-reset.png differ diff --git a/docker-for-windows/images/settings-shared-drives.png b/docker-for-windows/images/settings-shared-drives.png index 4550899d2c..d138a0fce5 100644 Binary files a/docker-for-windows/images/settings-shared-drives.png and b/docker-for-windows/images/settings-shared-drives.png differ diff --git a/docker-for-windows/images/shared-drive-firewall-blocked.png b/docker-for-windows/images/shared-drive-firewall-blocked.png index b504831dd4..1263c009df 100644 Binary files a/docker-for-windows/images/shared-drive-firewall-blocked.png and b/docker-for-windows/images/shared-drive-firewall-blocked.png differ diff --git a/docker-for-windows/images/shared-drive-on-demand.png b/docker-for-windows/images/shared-drive-on-demand.png index 37dceed10b..e8977f6fd3 100644 Binary files a/docker-for-windows/images/shared-drive-on-demand.png and b/docker-for-windows/images/shared-drive-on-demand.png differ diff --git a/docker-for-windows/images/whale-icon-systray.png b/docker-for-windows/images/whale-icon-systray.png index d4c6cc532b..0d433976ac 100644 Binary files a/docker-for-windows/images/whale-icon-systray.png and b/docker-for-windows/images/whale-icon-systray.png differ diff --git a/docker-for-windows/images/whale-x.png b/docker-for-windows/images/whale-x.png index c8f930330f..60981c9e5c 100644 Binary files a/docker-for-windows/images/whale-x.png and b/docker-for-windows/images/whale-x.png differ diff --git a/docker-for-windows/index.md b/docker-for-windows/index.md index 2db9fa1c2d..501c66b0f5 100644 --- a/docker-for-windows/index.md +++ b/docker-for-windows/index.md @@ -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). -

### 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="_"}. diff --git a/docker-for-windows/install.md b/docker-for-windows/install.md index 487c71c87e..b89a2f5ad6 100644 --- a/docker-for-windows/install.md +++ b/docker-for-windows/install.md @@ -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 diff --git a/docker-for-windows/networking.md b/docker-for-windows/networking.md index 33184ba4a2..0998e68a59 100644 --- a/docker-for-windows/networking.md +++ b/docker-for-windows/networking.md @@ -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 diff --git a/docker-for-windows/opensource.md b/docker-for-windows/opensource.md index 2a7bb4096e..c886d9b83b 100644 --- a/docker-for-windows/opensource.md +++ b/docker-for-windows/opensource.md @@ -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} -→  **About** from within the application, then click **Acknowledgements**. +→  **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). diff --git a/docker-for-windows/troubleshoot.md b/docker-for-windows/troubleshoot.md index dcfc48db28..54e1486f7e 100644 --- a/docker-for-windows/troubleshoot.md +++ b/docker-for-windows/troubleshoot.md @@ -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). diff --git a/docker-hub/publish/index.md b/docker-hub/publish/index.md index fa7d3b8e1d..9e4c9549b5 100644 --- a/docker-hub/publish/index.md +++ b/docker-hub/publish/index.md @@ -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 diff --git a/ee/desktop/release-notes.md b/ee/desktop/release-notes.md index 139dd76c4a..ffda2e0f4f 100644 --- a/ee/desktop/release-notes.md +++ b/ee/desktop/release-notes.md @@ -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 diff --git a/ee/dtr/admin/configure/external-storage/storage-backend-migration.md b/ee/dtr/admin/configure/external-storage/storage-backend-migration.md index b8eca97dde..1aa05db279 100644 --- a/ee/dtr/admin/configure/external-storage/storage-backend-migration.md +++ b/ee/dtr/admin/configure/external-storage/storage-backend-migration.md @@ -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 :$TOKEN -X POST "https:///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 :$TOKEN -X POST "https:///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/) diff --git a/ee/dtr/admin/install/index.md b/ee/dtr/admin/install/index.md index 07206b19ae..6a52f7779f 100644 --- a/ee/dtr/admin/install/index.md +++ b/ee/dtr/admin/install/index.md @@ -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-insecure-tls ``` - + > --ucp-node > > The `` 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 diff --git a/ee/dtr/release-notes.md b/ee/dtr/release-notes.md index 2ae77064e9..9bf9b9189a 100644 --- a/ee/dtr/release-notes.md +++ b/ee/dtr/release-notes.md @@ -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) diff --git a/ee/ucp/admin/install/cloudproviders/install-on-aws.md b/ee/ucp/admin/install/cloudproviders/install-on-aws.md index 9b1e8af002..932800c4ea 100644 --- a/ee/ucp/admin/install/cloudproviders/install-on-aws.md +++ b/ee/ucp/admin/install/cloudproviders/install-on-aws.md @@ -110,4 +110,20 @@ Subnets must be tagged with ` kubernetes.io/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 \ + --cloud-provider aws \ + --interactive +``` + +The full Docker UCP install CLI reference can be found +[here](/reference/ucp/3.2/cli/install/) diff --git a/ee/ucp/admin/install/cloudproviders/install-on-azure.md b/ee/ucp/admin/install/cloudproviders/install-on-azure.md index 76781a269c..5549bbde68 100644 --- a/ee/ucp/admin/install/cloudproviders/install-on-azure.md +++ b/ee/ucp/admin/install/cloudproviders/install-on-azure.md @@ -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 } ``` diff --git a/ee/ucp/admin/install/plan-installation.md b/ee/ucp/admin/install/plan-installation.md index bf1e1b404f..97bbb34606 100644 --- a/ee/ucp/admin/install/plan-installation.md +++ b/ee/ucp/admin/install/plan-installation.md @@ -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) diff --git a/ee/ucp/kubernetes/storage/use-csi.md b/ee/ucp/kubernetes/storage/use-csi.md index 4dbd960f94..b9df8609f6 100644 --- a/ee/ucp/kubernetes/storage/use-csi.md +++ b/ee/ucp/kubernetes/storage/use-csi.md @@ -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`, diff --git a/ee/ucp/swarm/deploy-to-collection.md b/ee/ucp/swarm/deploy-to-collection.md index 878653837b..6dc335ce65 100644 --- a/ee/ucp/swarm/deploy-to-collection.md +++ b/ee/ucp/swarm/deploy-to-collection.md @@ -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) diff --git a/ee/ucp/user-access/kubectl.md b/ee/ucp/user-access/kubectl.md index a94173b91d..16f97b708b 100644 --- a/ee/ucp/user-access/kubectl.md +++ b/ee/ucp/user-access/kubectl.md @@ -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 -## 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) - diff --git a/get-started/part2.md b/get-started/part2.md index d2de4cc696..1203ab1140 100644 --- a/get-started/part2.md +++ b/get-started/part2.md @@ -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 diff --git a/install/linux/docker-ce/ubuntu.md b/install/linux/docker-ce/ubuntu.md index 8ff4549ff5..de513a334a 100644 --- a/install/linux/docker-ce/ubuntu.md +++ b/install/linux/docker-ce/ubuntu.md @@ -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 diff --git a/machine/drivers/index.md b/machine/drivers/index.md index 58728b852e..46cd817797 100644 --- a/machine/drivers/index.md +++ b/machine/drivers/index.md @@ -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) diff --git a/machine/install-machine.md b/machine/install-machine.md index 5cc397e30f..7882eae3e5 100644 --- a/machine/install-machine.md +++ b/machine/install-machine.md @@ -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="_"}: diff --git a/network/iptables.md b/network/iptables.md index ee8aafb5c7..efedaa5574 100644 --- a/network/iptables.md +++ b/network/iptables.md @@ -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 diff --git a/notary/getting_started.md b/notary/getting_started.md index 45d783ad78..52562d2e74 100644 --- a/notary/getting_started.md +++ b/notary/getting_started.md @@ -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. diff --git a/registry/recipes/mirror.md b/registry/recipes/mirror.md index cdaeff225e..a06b59290d 100644 --- a/registry/recipes/mirror.md +++ b/registry/recipes/mirror.md @@ -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. \ No newline at end of file diff --git a/storage/volumes.md b/storage/volumes.md index 833079ad6d..ac0cde58f3 100644 --- a/storage/volumes.md +++ b/storage/volumes.md @@ -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`