diff --git a/compose/compose-file/index.md b/compose/compose-file/index.md
index 3083dc6f2d..f21990b09c 100644
--- a/compose/compose-file/index.md
+++ b/compose/compose-file/index.md
@@ -1140,7 +1140,7 @@ Run an init inside the container that forwards signals and reaps processes.
Either set a boolean value to use the default `init`, or specify a path to
a custom one.
- version: '2.2'
+ version: '3.7'
services:
web:
image: alpine:latest
diff --git a/compose/environment-variables.md b/compose/environment-variables.md
index f0ff04c69f..42680cce17 100644
--- a/compose/environment-variables.md
+++ b/compose/environment-variables.md
@@ -129,10 +129,11 @@ services:
When you set the same environment variable in multiple files, here's the
priority used by Compose to choose which value to use:
-1. Compose file,
-2. Environment file,
-3. Dockerfile,
-4. Variable is not defined.
+1. Compose file
+2. Shell environment variables
+3. Environment file
+4. Dockerfile
+5. Variable is not defined
In the example below, we set the same environment variable on an Environment
file, and the Compose file:
diff --git a/compose/startup-order.md b/compose/startup-order.md
index 4810a0932f..152ade0c88 100644
--- a/compose/startup-order.md
+++ b/compose/startup-order.md
@@ -6,7 +6,7 @@ notoc: true
---
You can control the order of service startup with the
-[depends_on](compose-file.md#depends-on) option. Compose always starts
+[depends_on](compose-file.md#depends_on) option. Compose always starts
containers in dependency order, where dependencies are determined by
`depends_on`, `links`, `volumes_from`, and `network_mode: "service:..."`.
diff --git a/develop/develop-images/multistage-build.md b/develop/develop-images/multistage-build.md
index dcff323fc0..2f3ae15005 100644
--- a/develop/develop-images/multistage-build.md
+++ b/develop/develop-images/multistage-build.md
@@ -92,7 +92,7 @@ With multi-stage builds, you use multiple `FROM` statements in your Dockerfile.
Each `FROM` instruction can use a different base, and each of them begins a new
stage of the build. You can selectively copy artifacts from one stage to
another, leaving behind everything you don't want in the final image. To show
-how this works, Let's adapt the Dockerfile from the previous section to use
+how this works, let's adapt the Dockerfile from the previous section to use
multi-stage builds.
**`Dockerfile`**:
diff --git a/docker-for-mac/index.md b/docker-for-mac/index.md
index d83f266c7d..f6791cf5e0 100644
--- a/docker-for-mac/index.md
+++ b/docker-for-mac/index.md
@@ -252,12 +252,7 @@ changes, click another preference tab, then choose to discard or not apply chang
### Kubernetes
-**Kubernetes is only available in Docker for Mac 17.12 CE and higher, on the Edge channel.**
-Kubernetes support is not included in Docker for Mac Stable releases. To find
-out more about Stable and Edge channels and how to switch between them, see
-[General configuration](#general){:target="_blank" class="_"}.
-
-Docker for Mac 17.12 CE (and higher) Edge includes a standalone Kubernetes server
+Docker for Mac 17.12 CE (and higher) includes a standalone Kubernetes server
that runs on your Mac, so that you can test deploying your Docker workloads on
Kubernetes.
diff --git a/docker-hub/repos.md b/docker-hub/repos.md
index 9ac512246b..4e13fc3769 100644
--- a/docker-hub/repos.md
+++ b/docker-hub/repos.md
@@ -140,8 +140,10 @@ team.
To work with a private repository on [Docker Hub](https://hub.docker.com), you
need to add one using the [Add Repository](https://hub.docker.com/add/repository/) button. You get one private
repository for free with your Docker Hub user account (not usable for
-organizations you're a member of). If you need more accounts you can upgrade
-your [Docker Hub](https://hub.docker.com/account/billing-plans/) plan.
+organizations you're a member of). If you need more private repositories for your user account, upgrade
+your Docker Hub plan from your [Billing Information](https://hub.docker.com/account/billing-plans/) page.
+
+User and organization accounts maintain separate billing profiles. For more information on managing billing for your account, you may refer to the [Where can I change my billing details?](https://success.docker.com/article/where-can-i-change-my-billing-details) kbase article.
Once the private repository is created, you can `push` and `pull` images to and
from it using Docker.
diff --git a/ee/dtr/admin/configure/use-a-load-balancer.md b/ee/dtr/admin/configure/use-a-load-balancer.md
index e1d8f2c38e..5351e917fb 100644
--- a/ee/dtr/admin/configure/use-a-load-balancer.md
+++ b/ee/dtr/admin/configure/use-a-load-balancer.md
@@ -30,6 +30,12 @@ replicas.
DTR does not provide a load balancing service. You can use an on-premises
or cloud-based load balancer to balance requests across multiple DTR replicas.
+> Additional load balancer requirements for UCP
+>
+> If you are also using UCP, there are [additional requirements](https://docs.docker.com/ee/ucp/admin/configure/join-nodes/use-a-load-balancer/#load-balancing-ucp-and-dtr) if you plan to load balance both UCP and DTR using the same load balancer.
+>
+>{: .important}
+
You can use the unauthenticated `/_ping` endpoint on each DTR replica,
to check if the replica is healthy and if it should remain in the load balancing
pool or not.
diff --git a/ee/dtr/admin/upgrade.md b/ee/dtr/admin/upgrade.md
index 08e9183192..53068b05c4 100644
--- a/ee/dtr/admin/upgrade.md
+++ b/ee/dtr/admin/upgrade.md
@@ -43,7 +43,7 @@ Before starting your upgrade, make sure that:
* The version of UCP you are using is supported by the version of DTR you
are trying to upgrade to. [Check the compatibility matrix](https://success.docker.com/Policies/Compatibility_Matrix).
* You have a recent [DTR backup](disaster-recovery/create-a-backup.md).
-* You [disable Docker content trust in UCP](/datacenter/ucp/2.2/guides/admin/configure/run-only-the-images-you-trust.md).
+* You [disable Docker content trust in UCP](/ee/ucp/admin/configure/run-only-the-images-you-trust/).
### Step 1. Upgrade DTR to {{ previous_version }} if necessary
diff --git a/ee/dtr/user/manage-images/index.md b/ee/dtr/user/manage-images/index.md
index dee4775fcb..36267e4cd0 100644
--- a/ee/dtr/user/manage-images/index.md
+++ b/ee/dtr/user/manage-images/index.md
@@ -34,9 +34,14 @@ When creating a repository in DTR, the full name of the repository becomes
`
//`. In this example, the full
name of our repository will be `dtr.example.org/dave.lauper/golang`.
-DTR only allows image names with 255 characters. This includes the domain,
-organization, and repository name. When you create a repository, make sure
-its full name has less than 255 characters.
+> Image name size for DTR
+>
+> When creating an image name for use with DTR ensure that the organization and repository name has less than 56 characters and that the entire image name which includes domain, organization and repository name does not exceed 255 characters.
+>
+> The 56 character `` limit in DTR is due to an underlying limitation in how the image name information is stored within DTR metadata in RethinkDB. RethinkDB currently has a Primary Key length limit of 127 characters.
+>
+> When DTR stores the above data it appends a sha256sum comprised of 72 characters to the end of the value to ensure uniqueness within the database. If the `` exceeds 56 characters it will then exceed the 127 character limit in RethinkDB (72+56=128).
+{: .important}
## Where to go next
diff --git a/ee/engine/release-notes.md b/ee/engine/release-notes.md
index 47e52a4ef5..a8863b41f2 100644
--- a/ee/engine/release-notes.md
+++ b/ee/engine/release-notes.md
@@ -49,6 +49,7 @@ adopted as quickly for consistency and compatibility reasons.
+ Update to docker-ce 18.03.1 engine.
+ Add support for FIPS 140-2 on x86_64.
+ Add support for Microsoft Windows Server 1709 and 1803 with support for [swarm ingress routing mesh](https://docs.docker.com/engine/swarm/ingress/), [VIP service discovery](https://docs.docker.com/v17.09/engine/swarm/networking/#configure-service-discovery), and [named pipe mounting](https://blog.docker.com/2017/09/docker-windows-server-1709/).
++ Add support for Ubuntu 18.04.
+ Windows opt-out telemetry stream.
+ Support for `--chown` with `COPY` and `ADD` in `Dockerfile`.
+ Add support for multiple logging drivers for `docker logs`.
diff --git a/ee/index.md b/ee/index.md
index 5dc198703d..e8e344b6fc 100644
--- a/ee/index.md
+++ b/ee/index.md
@@ -14,7 +14,7 @@ infrastructure, both on-premises and in the cloud.
Docker Enterprise Edition is a secure, scalable, and supported container
platform for building and orchestrating applications across multi-tenant Linux,
-Windows Server 2016, and IBM z Systems environments.
+Windows Server 2016, and IBM Z environments.
Docker EE enables deploying your workloads for high availability (HA) onto the
orchestrator of your choice. Docker EE automates many of the tasks that
diff --git a/ee/ucp/admin/install/system-requirements.md b/ee/ucp/admin/install/system-requirements.md
index 63e79fa9b0..a52686a251 100644
--- a/ee/ucp/admin/install/system-requirements.md
+++ b/ee/ucp/admin/install/system-requirements.md
@@ -13,7 +13,7 @@ Before installing, be sure your infrastructure has these requirements.
You can install UCP on-premises or on a cloud provider. Common requirements:
-* [Docker EE Engine](/engine/installation/index.md) version 17.06.2-ee-8;
+* [Docker EE Engine](/ee/supported-platforms.md) version 17.06.2-ee-8;
values of `n` in the `-ee-` suffix must be 8 or higher
* Linux kernel version 3.10 or higher
* A static IP address
@@ -139,4 +139,4 @@ UCP {{ page.ucp_version }} requires minimum versions of the following Docker com
## Where to go next
- [Plan your installation](plan-installation.md)
-- [UCP architecture](../../ucp-architecture.md)
\ No newline at end of file
+- [UCP architecture](../../ucp-architecture.md)
diff --git a/ee/ucp/authorization/reset-user-password.md b/ee/ucp/authorization/reset-user-password.md
index 2248df02d6..e9932393a8 100644
--- a/ee/ucp/authorization/reset-user-password.md
+++ b/ee/ucp/authorization/reset-user-password.md
@@ -23,9 +23,7 @@ or use **ssh** to log in to a manager node managed by Docker EE and run:
```none
{% raw %}
-docker exec -it ucp-auth-api enzi \
- "$(docker inspect --format '{{ index .Args 0 }}' ucp-auth-api)" \
- passwd -i
+docker run --net=host -v ucp-auth-api-certs:/tls -it "$(docker inspect --format '{{ .Spec.TaskTemplate.ContainerSpec.Image }}' ucp-auth-api)" "$(docker inspect --format '{{ index .Spec.TaskTemplate.ContainerSpec.Args 0 }}' ucp-auth-api)" passwd -i
{% endraw %}
```
diff --git a/ee/ucp/images/kubernetes-version.png b/ee/ucp/images/kubernetes-version.png
new file mode 100644
index 0000000000..60a248e849
Binary files /dev/null and b/ee/ucp/images/kubernetes-version.png differ
diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md
index 77174b7b0a..ad622d48fb 100644
--- a/ee/ucp/release-notes.md
+++ b/ee/ucp/release-notes.md
@@ -20,6 +20,18 @@ upgrade your installation to the latest release.
# Version 3.0
+## 3.0.4 (2018-08-09)
+
+**Bug fixes**
+
+* Security
+ * Fixed a critical security issue where the LDAP bind username and password
+ were stored in clear text on UCP hosts. Please refer to [this KB article](https://success.docker.com/article/upgrading-to-ucp-2-2-12-ucp-3-0-4/) for proper implementation of this fix.
+
+**Known Issue**
+
+* You must manually pull `docker/ucp-agent:3.0.4` in the images section of the web UI before upgrading. Alternately, you can just pull `docker/ucp-agent:3.0.4` on every manager node.
+
## 3.0.3 (2018-07-26)
**New platforms**
@@ -263,6 +275,16 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads.
# Version 2.2
+## Version 2.2.12 (2018-08-09)
+
+**Bug fixes**
+
+* Security
+ * Fixed a critical security issue where the LDAP bind username and password
+ were stored in clear text on UCP hosts. Please refer to the following KB article
+ https://success.docker.com/article/upgrading-to-ucp-2-2-12-ucp-3-0-4/
+ for proper implementation of this fix.
+
## Version 2.2.11 (2018-07-26)
**New platforms**
@@ -274,7 +296,7 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads.
* Fixed an issue that causes some security headers to not be added to all API responses.
* Core
- * Optimized Swarm service read API calls through UCP.
+ * Optimized swarm service read API calls through UCP.
* Upgraded `RethinkDB` image to address potential security vulnerabilities.
* Fixee an issue where removing a worker node from the cluster would cause an etcd member to be removed on a manager node.
* Upgraded `etcd` version to 2.3.8.
diff --git a/ee/ucp/ucp-architecture.md b/ee/ucp/ucp-architecture.md
index 502cb0dc1d..c2f1d32e42 100644
--- a/ee/ucp/ucp-architecture.md
+++ b/ee/ucp/ucp-architecture.md
@@ -68,8 +68,8 @@ on a node depend on whether the node is a manager or a worker.
Internally, UCP uses the following components:
-* Calico 3.0.1.
-* Kubernetes 1.8.9.
+* Calico 3.0.1
+* Kubernetes 1.8.11
### UCP components in manager nodes
diff --git a/ee/ucp/user-access/kubectl.md b/ee/ucp/user-access/kubectl.md
index a60b8f1929..f7d73a825f 100644
--- a/ee/ucp/user-access/kubectl.md
+++ b/ee/ucp/user-access/kubectl.md
@@ -4,94 +4,98 @@ description: Learn how to install kubectl, the Kubernetes command-line tool, on
keywords: ucp, cli, administration, kubectl, Kubernetes
---
-Docker EE installs Kubernetes automatically when you install UCP, and the
-web UI enables deploying Kubernetes workloads and monitoring pods. You can
-also interact with the Kubernetes deployment by using the Kubernetes
-command-line tool, which is named kubectl.
+Docker EE 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
+command-line tool named kubectl.
-To use kubectl, install the binary on a UCP manager or worker node. To access
-the UCP cluster with kubectl, install the UCP client bundle.
+To access the UCP cluster with kubectl, install the [UCP client bundle](cli.md).
-> Kubernetes on Docker for Mac
+> Kubernetes on Docker for Mac and Docker for Windows
>
-> Docker for Mac 17.12 CE Edge provides a standalone Kubernetes server that
-> runs on your Mac, with kubectl installed by default. This installation is
+> Docker for Mac and Docker for Windows provide a standalone Kubernetes server that
+> runs on your development machine, with kubectl installed by default. This installation is
> separate from the Kubernetes deployment on a UCP cluster.
> Learn how to [deploy to Kubernetes on Docker for Mac](/docker-for-mac/kubernetes.md).
{: .important}
## Install the kubectl binary
-Install the latest version of kubectl for Linux on the node where you want
-to control Kubernetes. You can install kubectl on both manager and worker
-nodes. Learn how to [install and set up kubectl](https://v1-8.docs.kubernetes.io/docs/tasks/tools/install-kubectl/).
+To use kubectl, install the binary on a workstation which has access to your UCP endpoint.
-On any node in your UCP cluster, run the following commands.
+> Must install compatible version
+>
+> 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.0/api/).
+
+From the UCP dashboard, click on **About Docker EE** within the **Admin** menu in the top left corner
+ of the dashboard. Then navigate to **Kubernetes**.
+
+ {: .with-border}
+
+Once you have the Kubernetes version, install the kubectl client for the relevant
+operating system.
+
+
+
+
+```
+# Set the Kubernetes version as found in the UCP Dashboard or API
+k8sversion=v1.8.11
-```bash
# Get the kubectl binary.
-curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
+curl -LO https://storage.googleapis.com/kubernetes-release/release/$k8sversion/bin/darwin/amd64/kubectl
# Make the kubectl binary executable.
chmod +x ./kubectl
# Move the kubectl executable to /usr/local/bin.
sudo mv ./kubectl /usr/local/bin/kubectl
-
```
-
-Repeat these commands on every node that you want to control Kubernetes from.
-
-## Install the UCP client bundle
-
-To access the Kubernetes API server that UCP exposes, you need the private and
-public key pair that authorizes your requests to UCP. Follow the instructions
-in [CLI-based access](cli.md#download-client-certificates-by-using-the-rest-api)
-to install the client bundle.
-
-> UCP client bundle is required
->
-> If you run a kubectl command without the client bundle, you'll get an
-> error like this:
-> ```
-> The connection to the server localhost:8080 was refused - did you specify the right host or port?
-> ```
-{: .warning}
-
-## Confirm the connection to UCP
-
-To confirm that kubectl is communicating with UCP, run:
-
-```bash
-kubectl config current-context
+
+
+
```
+# Set the Kubernetes version as found in the UCP Dashboard or API
+k8sversion=v1.8.11
-If the UCP client bundle is installed correctly, you'll see something like
-this:
+# Get the kubectl binary.
+curl -LO https://storage.googleapis.com/kubernetes-release/release/$k8sversion/bin/linux/amd64/kubectl
+# Make the kubectl binary executable.
+chmod +x ./kubectl
+
+# Move the kubectl executable to /usr/local/bin.
+sudo mv ./kubectl /usr/local/bin/kubectl
```
-ucp_54.70.245.225:6443_admin
+
+
+
+You can download the binary from this [link](https://storage.googleapis.com/kubernetes-release/release/v.1.8.11/bin/windows/amd64/kubectl.exe)
+
+If you have curl installed on your system, you use these commands in Powershell.
+
+```cmd
+$env:k8sversion = "v1.8.11"
+
+curl https://storage.googleapis.com/kubernetes-release/release/$env:k8sversion/bin/windows/amd64/kubectl.exe
```
+
+
+
-## Inspect Kubernetes resources
+## Using kubectl with a Docker EE cluster
-When the kubectl executable is in place and the UCP client bundle is
-installed, you can run kubectl commands against the UCP cluster, like you
-would on any Kubernetes deployment.
-
-For example, to see all resources in the default namespace, run:
-
-```bash
-kubectl get all
-```
-
-If you haven't deployed any Kubernetes workloads or created any Kubernetes
-objects, you'll see something like this:
-
-```
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-svc/kubernetes ClusterIP 10.96.0.1 443/TCP 5d
-```
+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
+ configure kubectl to use them can be found in [CLI-based access.](cli.md#download-client-certificates)
## Where to go next
diff --git a/engine/security/userns-remap.md b/engine/security/userns-remap.md
index 6fb7a799dd..23be0c9cdd 100644
--- a/engine/security/userns-remap.md
+++ b/engine/security/userns-remap.md
@@ -225,7 +225,7 @@ $ dockerd --userns-remap="testuser:testuser"
```
Your directory listing may have some differences, especially if you
- user a different container storage driver than `aufs`.
+ use a different container storage driver than `aufs`.
The directories which are owned by the remapped user are used instead
of the same directories directly beneath `/var/lib/docker/` and the
diff --git a/install/linux/linux-postinstall.md b/install/linux/linux-postinstall.md
index af7c960279..2cb4de940f 100644
--- a/install/linux/linux-postinstall.md
+++ b/install/linux/linux-postinstall.md
@@ -12,19 +12,20 @@ better with Docker.
## Manage Docker as a non-root user
-The `docker` daemon binds to a Unix socket instead of a TCP port. By default
+The Docker daemon binds to a Unix socket instead of a TCP port. By default
that Unix socket is owned by the user `root` and other users can only access it
-using `sudo`. The `docker` daemon always runs as the `root` user.
+using `sudo`. The Docker daemon always runs as the `root` user.
-If you don't want to use `sudo` when you use the `docker` command, create a Unix
-group called `docker` and add users to it. When the `docker` daemon starts, it
-makes the ownership of the Unix socket read/writable by the `docker` group.
+If you don't want to preface the `docker` command with `sudo`, create a Unix
+group called `docker` and add users to it. When the Docker daemon starts, it
+creates a Unix socket accessible by members of the `docker` group.
-> **Warning**:
+> Warning
+>
> The `docker` group grants privileges equivalent to the `root`
> user. For details on how this impacts security in your system, see
> [*Docker Daemon Attack Surface*](/engine/security/security.md#docker-daemon-attack-surface).
-{:.warning}
+{: .warning}
To create the `docker` group and add your user:
@@ -141,9 +142,9 @@ By default, the Docker daemon listens for connections on a UNIX socket to accept
Configuring Docker to accept remote connections can be done with the `docker.service` systemd unit file for Linux distributions using systemd, such as recent versions of RedHat, CentOS, Ubuntu and SLES, or with the `daemon.json` file which is recommended for Linux distributions that do not use systemd.
-> systemd vs `daemon.json`
+> systemd vs daemon.json
>
-> Configuring docker to listen for connections using both the systemd unit file and the daemon.json
+> Configuring Docker to listen for connections using both the `systemd` unit file and the `daemon.json`
> file causes a conflict that prevents Docker from starting.
### Configuring remote access with `systemd` unit file
diff --git a/install/windows/docker-ee.md b/install/windows/docker-ee.md
index d5fb8c7973..ded7eaae94 100644
--- a/install/windows/docker-ee.md
+++ b/install/windows/docker-ee.md
@@ -17,7 +17,7 @@ install Docker EE.
> Release notes
>
-> You can [get release notes for all versions here](/release-notes/)
+> [Release notes for all versions](/release-notes/)
## Install Docker EE
@@ -46,7 +46,7 @@ full list of prerequisites.
3. Test your Docker EE installation by running the `hello-world` container.
```PowerShell
- docker container run hello-world:nanoserver
+ docker run hello-world:nanoserver
Unable to find image 'hello-world:nanoserver' locally
nanoserver: Pulling from library/hello-world
@@ -129,26 +129,41 @@ installs, or install on air-gapped systems.
## Install a specific version
-To install a specific Docker version, you can use the
-`MaximumVersion`,`MinimumVersion` or `RequiredVersion` flags. For example:
+There are currently two channels available for Docker EE for Windows Server:
+
+* `17.06` - Use this version if you're using Docker Enterprise Edition (Docker Engine, UCP, DTR). `17.06` is the default.
+* `18.03` - Use this version if you're running Docker EE Engine alone.
+
+To install a specific version, use the `RequiredVersion` flag:
```PowerShell
-Install-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 17.06.2-ee-5
+Install-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 18.03
...
-Name Version Source Summary
----- ------- ------ -------
-Docker 17.06.2-ee-5 Docker Contains Docker EE for use with Windows Server 2016...
+Name Version Source Summary
+---- ------- ------ -------
+Docker 18.03.1-ee-2 Docker Contains Docker EE for use with Windows Server...
```
+### Updating the DockerMsftProvider
+Installing specific Docker EE versions may require an update to previously installed DockerMsftProvider modules. To update:
+
+```PowerShell
+Update-Module DockerMsftProvider
+```
+
+Then open a new Powershell session for the update to take effect.
+
## Update Docker EE
-To update Docker EE on Windows Server 2016:
+To update Docker EE Engine to the most recent release, specify the `-RequiredVersion` and `-Update` flags:
```PowerShell
-Install-Package -Name docker -ProviderName DockerMsftProvider -Update -Force
+Install-Package -Name docker -ProviderName DockerMsftProvider -RequiredVersion 18.03 -Update -Force
```
-If Docker Universal Control Plane (UCP) is installed, run the
+## Preparing a Docker EE Engine for use with UCP
+
+Run the
[UCP installation script for Windows](/datacenter/ucp/2.2/guides/admin/configure/join-windows-worker-nodes/#run-the-windows-node-setup-script).
Start the Docker service:
diff --git a/machine/reference/rm.md b/machine/reference/rm.md
index 272f75d0a1..64c6787010 100644
--- a/machine/reference/rm.md
+++ b/machine/reference/rm.md
@@ -4,7 +4,7 @@ keywords: machine, rm, subcommand
title: docker-machine rm
---
-Remove a machine. This removese the local reference and deletes it
+Remove a machine. This removes the local reference and deletes it
on the cloud provider or virtualization management platform.
```none
@@ -61,4 +61,4 @@ foo - virtualbox Running tcp://192.168.99.100:2376 v1.9.
$ docker-machine rm -y foo
About to remove foo
Successfully removed foo
-```
\ No newline at end of file
+```
diff --git a/network/bridge.md b/network/bridge.md
index 485f27eb82..c20c76a2b5 100644
--- a/network/bridge.md
+++ b/network/bridge.md
@@ -43,7 +43,7 @@ network.**
Imagine an application with a web front-end and a database back-end. The
outside world needs access to the web front-end (perhaps on port 80), but only
- the front-end itself needs access to the database host and port. Using a
+ the back-end itself needs access to the database host and port. Using a
user-defined bridge, only the web port needs to be opened, and the database
application doesn't need any ports open, since the web front-end can reach it
over the user-defined bridge.
diff --git a/reference/ucp/3.0/cli/install.md b/reference/ucp/3.0/cli/install.md
index d7bac0845b..3dc06c8e91 100644
--- a/reference/ucp/3.0/cli/install.md
+++ b/reference/ucp/3.0/cli/install.md
@@ -24,13 +24,13 @@ Docker Universal Control Plane (UCP).
When installing UCP you can customize:
* The certificates used by the UCP web server. Create a volume
- named 'ucp-controller-server-certs' and copy the ca.pem, cert.pem, and key.pem
+ named `ucp-controller-server-certs` and copy the `ca.pem`, `cert.pem`, and `key.pem`
files to the root directory. Then run the install command with the
`--external-server-cert` flag.
* The license used by UCP, by bind-mounting the file at
- '/config/docker_subscription.lic' in the tool. E.g. -v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic
- or by specifying with '--license "$(cat license.lic)"
+ `/config/docker_subscription.lic` in the tool. E.g. `-v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic`
+ or by specifying with `--license "$(cat license.lic)`
If you're joining more nodes to this swarm, open the following ports in your
firewall:
@@ -77,7 +77,7 @@ command.
| `--swarm-experimental` | Enable Docker Swarm experimental features. Used for backwards compatibility |
| `--disable-tracking` | Disable anonymous tracking and analytics |
| `--disable-usage` | Disable anonymous usage reporting |
-| `--external-server-cert` | Customize the certificates used by the UCP web server |
+| `--external-server-cert` | Use the certificates in the `ucp-controller-server-certs` volume instead of generating self-signed certs during installation |
| `--preserve-certs` | Don't generate certificates if they already exist |
| `--binpack` | Set the Docker Swarm scheduler to binpack mode. Used for backwards compatibility |
| `--random` | Set the Docker Swarm scheduler to random mode. Used for backwards compatibility |
diff --git a/registry/deploying.md b/registry/deploying.md
index 5337db8187..740adac2ad 100644
--- a/registry/deploying.md
+++ b/registry/deploying.md
@@ -458,8 +458,8 @@ secrets.
You may want to leverage more advanced basic auth implementations by using a
proxy in front of the registry. See the [recipes list](recipes/index.md).
-The registry also supports delegated authentiation, which redirects users to a
-specific, trusted token server. This approach is more complicated to set up, and
+The registry also supports delegated authentication which redirects users to a
+specific trusted token server. This approach is more complicated to set up, and
only makes sense if you need to fully configure ACLs and need more control over
the registry's integration into your global authorization and authentication
systems. Refer to the following [background information](spec/auth/token.md) and
diff --git a/test.md b/test.md
index bb768f1288..99d7ce5840 100644
--- a/test.md
+++ b/test.md
@@ -646,12 +646,14 @@ It renders like this with a colored sidebar and icon:
Use the `warning` class to let people know this is dangerous or they should pay close attention to this part of the road before moving on:
+```
> Ouch, don't do that!
>
> Sticking your finger in an electrical outlet can result in an electric shock.
>
> You can also add more paragraphs here if your explanation is super complex.
{: .warning}
+```
It will render like this with a colored sidebar and icon: