diff --git a/Makefile b/Makefile
index 81bde6b..1b1a129 100644
--- a/Makefile
+++ b/Makefile
@@ -117,6 +117,9 @@
 shell: build ## start a shell inside the build env
 	$(DOCKER_RUN_DOCKER) bash
 
+yaml-docs-gen: build ## generate documentation YAML files consumed by docs repo
+	$(DOCKER_RUN_DOCKER) sh -c 'hack/make.sh yaml-docs-generator && ( root=$$(pwd); cd bundles/latest/yaml-docs-generator; mkdir docs; ./yaml-docs-generator --root $${root} --target $$(pwd)/docs )'
+
 test: build ## run the unit, integration and docker-py tests
 	$(DOCKER_RUN_DOCKER) hack/make.sh dynbinary cross test-unit test-integration-cli test-docker-py
 
diff --git a/docs/reference/commandline/attach.md b/docs/reference/commandline/attach.md
index 307068a..9f76a54 100644
--- a/docs/reference/commandline/attach.md
+++ b/docs/reference/commandline/attach.md
@@ -27,6 +27,8 @@
       --sig-proxy            Proxy all received signals to the process (default true)
 ```
 
+## Description
+
 Use `docker attach` to attach to a running container using the container's ID
 or name, either to view its ongoing output or to control it interactively.
 You can attach to the same contained process multiple times simultaneously,
@@ -55,8 +57,7 @@
 foreground over a slow client connection. Instead, users should use the
 `docker logs` command to get access to the logs.
 
-
-## Override the detach sequence
+### Override the detach sequence
 
 If you want, you can configure an override the Docker key sequence for detach.
 This is useful if the Docker default sequence conflicts with key sequence you
@@ -80,52 +81,72 @@
 sequences. To configure a different configuration default key sequence for all
 containers, see [**Configuration file** section](cli.md#configuration-files).
 
-#### Examples
+## Examples
 
-    $ docker run -d --name topdemo ubuntu /usr/bin/top -b
-    $ docker attach topdemo
-    top - 02:05:52 up  3:05,  0 users,  load average: 0.01, 0.02, 0.05
-    Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
-    Cpu(s):  0.1%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
-    Mem:    373572k total,   355560k used,    18012k free,    27872k buffers
-    Swap:   786428k total,        0k used,   786428k free,   221740k cached
+### Attach to and detach from a running container
 
-    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
-     1 root      20   0 17200 1116  912 R    0  0.3   0:00.03 top
+```bash
+$ docker run -d --name topdemo ubuntu /usr/bin/top -b
 
-     top - 02:05:55 up  3:05,  0 users,  load average: 0.01, 0.02, 0.05
-     Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
-     Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
-     Mem:    373572k total,   355244k used,    18328k free,    27872k buffers
-     Swap:   786428k total,        0k used,   786428k free,   221776k cached
+$ docker attach topdemo
 
-       PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
-           1 root      20   0 17208 1144  932 R    0  0.3   0:00.03 top
+top - 02:05:52 up  3:05,  0 users,  load average: 0.01, 0.02, 0.05
+Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
+Cpu(s):  0.1%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
+Mem:    373572k total,   355560k used,    18012k free,    27872k buffers
+Swap:   786428k total,        0k used,   786428k free,   221740k cached
+
+PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
+ 1 root      20   0 17200 1116  912 R    0  0.3   0:00.03 top
+
+ top - 02:05:55 up  3:05,  0 users,  load average: 0.01, 0.02, 0.05
+ Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
+ Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
+ Mem:    373572k total,   355244k used,    18328k free,    27872k buffers
+ Swap:   786428k total,        0k used,   786428k free,   221776k cached
+
+   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
+       1 root      20   0 17208 1144  932 R    0  0.3   0:00.03 top
 
 
-     top - 02:05:58 up  3:06,  0 users,  load average: 0.01, 0.02, 0.05
-     Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
-     Cpu(s):  0.2%us,  0.3%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
-     Mem:    373572k total,   355780k used,    17792k free,    27880k buffers
-     Swap:   786428k total,        0k used,   786428k free,   221776k cached
+ top - 02:05:58 up  3:06,  0 users,  load average: 0.01, 0.02, 0.05
+ Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
+ Cpu(s):  0.2%us,  0.3%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
+ Mem:    373572k total,   355780k used,    17792k free,    27880k buffers
+ Swap:   786428k total,        0k used,   786428k free,   221776k cached
 
-     PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
-          1 root      20   0 17208 1144  932 R    0  0.3   0:00.03 top
-    ^C$
-    $ echo $?
-    0
-    $ docker ps -a | grep topdemo
-    7998ac8581f9        ubuntu:14.04        "/usr/bin/top -b"   38 seconds ago      Exited (0) 21 seconds ago                          topdemo
+ PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
+      1 root      20   0 17208 1144  932 R    0  0.3   0:00.03 top
+^C$
+
+$ echo $?
+0
+$ docker ps -a | grep topdemo
+
+7998ac8581f9        ubuntu:14.04        "/usr/bin/top -b"   38 seconds ago      Exited (0) 21 seconds ago                          topdemo
+```
+
+### Get the exit code of the container's command
 
 And in this second example, you can see the exit code returned by the `bash`
 process is returned by the `docker attach` command to its caller too:
 
+```bash
     $ docker run --name test -d -it debian
+
     275c44472aebd77c926d4527885bb09f2f6db21d878c75f0a1c212c03d3bcfab
+
     $ docker attach test
+
     root@f38c87f2a42d:/# exit 13
+
     exit
+
     $ echo $?
+
     13
+
     $ docker ps -a | grep test
+
     275c44472aeb        debian:7            "/bin/bash"         26 seconds ago      Exited (13) 17 seconds ago                         test
+```
diff --git a/docs/reference/commandline/build.md b/docs/reference/commandline/build.md
index 42c3ecf..b141e74 100644
--- a/docs/reference/commandline/build.md
+++ b/docs/reference/commandline/build.md
@@ -58,6 +58,8 @@
       --ulimit value            Ulimit options (default [])
 ```
 
+## Description
+
 Builds Docker images from a Dockerfile and a "context". A build's context is
 the files located in the specified `PATH` or `URL`. The build process can refer
 to any of the files in the context. For example, your build can use an
@@ -285,7 +287,7 @@
 This will build an image for a compressed context read from `STDIN`.  Supported
 formats are: bzip2, gzip and xz.
 
-### Usage of .dockerignore
+### Use a .dockerignore file
 
 ```bash
 $ docker build .
@@ -315,7 +317,7 @@
 uploaded context. The builder reference contains detailed information on
 [creating a .dockerignore file](../builder.md#dockerignore-file)
 
-### Tag image (-t)
+### Tag an image (-t)
 
 ```bash
 $ docker build -t vieux/apache:2.0 .
@@ -334,7 +336,7 @@
 ```bash
 $ docker build -t whenry/fedora-jboss:latest -t whenry/fedora-jboss:v2.1 .
 ```
-### Specify Dockerfile (-f)
+### Specify a Dockerfile (-f)
 
 ```bash
 $ docker build -f Dockerfile.debug .
@@ -373,7 +375,7 @@
 > repeatable builds on remote Docker hosts. This is also the reason why
 > `ADD ../file` will not work.
 
-### Optional parent cgroup (--cgroup-parent)
+### Use a custom parent cgroup (--cgroup-parent)
 
 When `docker build` is run with the `--cgroup-parent` option the containers
 used in the build will be run with the [corresponding `docker run`
diff --git a/docs/reference/commandline/cli.md b/docs/reference/commandline/cli.md
index e56fb9f..3b4577a 100644
--- a/docs/reference/commandline/cli.md
+++ b/docs/reference/commandline/cli.md
@@ -13,7 +13,7 @@
      will be rejected.
 -->
 
-# Use the Docker command line
+# docker
 
 To list available commands, either run `docker` with no parameters
 or execute `docker help`:
@@ -43,6 +43,8 @@
     # […]
 ```
 
+## Description
+
 Depending on your Docker system configuration, you may be required to preface
 each `docker` command with `sudo`. To avoid having to use `sudo` with the
 `docker` command, your system administrator can create a Unix group called
@@ -51,7 +53,7 @@
 For more information about installing Docker or `sudo` configuration, refer to
 the [installation](https://docs.docker.com/engine/installation/) instructions for your operating system.
 
-## Environment variables
+### Environment variables
 
 For easy reference, the following list of environment variables are supported
 by the `docker` command line:
@@ -69,7 +71,7 @@
   Equates to `--disable-content-trust=false` for build, create, pull, push, run.
 * `DOCKER_CONTENT_TRUST_SERVER` The URL of the Notary server to use. This defaults
   to the same URL as the registry.
-* `DOCKER_HIDE_LEGACY_COMMANDS` When set, Docker hides "legacy" top-level commands (such as `docker rm`, and 
+* `DOCKER_HIDE_LEGACY_COMMANDS` When set, Docker hides "legacy" top-level commands (such as `docker rm`, and
   `docker pull`) in `docker help` output, and only `Management commands` per object-type (e.g., `docker container`) are
   printed. This may become the default in a future release, at which point this environment-variable is removed.
 * `DOCKER_TMPDIR` Location for temporary Docker files.
@@ -85,7 +87,7 @@
 [Go specification](http://golang.org/pkg/net/http/) for details on these
 variables.
 
-## Configuration files
+### Configuration files
 
 By default, the Docker command line stores its configuration files in a
 directory called `.docker` within your `$HOME` directory. However, you can
@@ -165,18 +167,23 @@
 
 Following is a sample `config.json` file:
 
-    {% raw %}
-    {
-      "HttpHeaders": {
-        "MyHeader": "MyValue"
-      },
-      "psFormat": "table {{.ID}}\\t{{.Image}}\\t{{.Command}}\\t{{.Labels}}",
-      "imagesFormat": "table {{.ID}}\\t{{.Repository}}\\t{{.Tag}}\\t{{.CreatedAt}}",
-      "statsFormat": "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}",
-      "serviceInspectFormat": "pretty",
-      "detachKeys": "ctrl-e,e"
-    }
-    {% endraw %}
+```json
+{
+  "HttpHeaders": {
+    "MyHeader": "MyValue"
+  },
+  "psFormat": "table {{.ID}}\\t{{.Image}}\\t{{.Command}}\\t{{.Labels}}",
+  "imagesFormat": "table {{.ID}}\\t{{.Repository}}\\t{{.Tag}}\\t{{.CreatedAt}}",
+  "statsFormat": "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}",
+  "serviceInspectFormat": "pretty",
+  "detachKeys": "ctrl-e,e",
+  "credsStore": "secretservice",
+  "credHelpers": {
+    "awesomereg.example.org": "hip-star",
+    "unicorn.example.com": "vcbait"
+  }
+}
+```
 
 ### Notary
 
@@ -187,7 +194,9 @@
 Alternatively you can trust the certificate globally by adding it to your system's
 list of root Certificate Authorities.
 
-## Help
+## Examples
+
+### Display help text
 
 To list the help on any command just execute the command, followed by the
 `--help` option.
@@ -203,13 +212,13 @@
       -a, --attach value               Attach to STDIN, STDOUT or STDERR (default [])
     ...
 
-## Option types
+### Option types
 
 Single character command line options can be combined, so rather than
 typing `docker run -i -t --name test busybox sh`,
 you can write `docker run -it --name test busybox sh`.
 
-### Boolean
+#### Boolean
 
 Boolean options take the form `-d=false`. The value you see in the help text is
 the default value which is set if you do **not** specify that flag. If you
@@ -222,27 +231,33 @@
 Options which default to `true` (e.g., `docker build --rm=true`) can only be
 set to the non-default value by explicitly setting them to `false`:
 
-    $ docker build --rm=false .
+```bash
+$ docker build --rm=false .
+```
 
-### Multi
+#### Multi
 
 You can specify options like `-a=[]` multiple times in a single command line,
 for example in these commands:
 
-    $ docker run -a stdin -a stdout -i -t ubuntu /bin/bash
-    $ docker run -a stdin -a stdout -a stderr ubuntu /bin/ls
+```bash
+$ docker run -a stdin -a stdout -i -t ubuntu /bin/bash
+
+$ docker run -a stdin -a stdout -a stderr ubuntu /bin/ls
+```
 
 Sometimes, multiple options can call for a more complex value string as for
 `-v`:
 
-    $ docker run -v /host:/container example/mysql
+```bash
+$ docker run -v /host:/container example/mysql
+```
 
-> **Note:**
-> Do not use the `-t` and `-a stderr` options together due to
+> **Note**: Do not use the `-t` and `-a stderr` options together due to
 > limitations in the `pty` implementation. All `stderr` in `pty` mode
 > simply goes to `stdout`.
 
-### Strings and Integers
+#### Strings and Integers
 
 Options like `--name=""` expect a string, and they
 can only be specified once. Options like `-c=0`
diff --git a/docs/reference/commandline/commit.md b/docs/reference/commandline/commit.md
index 8f971a5..22c98e3 100644
--- a/docs/reference/commandline/commit.md
+++ b/docs/reference/commandline/commit.md
@@ -28,6 +28,8 @@
   -p, --pause            Pause container during commit (default true)
 ```
 
+## Description
+
 It can be useful to commit a container's file changes or settings into a new
 image. This allows you debug a container by running an interactive shell, or to
 export a working dataset to another server. Generally, it is better to use
@@ -46,48 +48,70 @@
 created.  Supported `Dockerfile` instructions:
 `CMD`|`ENTRYPOINT`|`ENV`|`EXPOSE`|`LABEL`|`ONBUILD`|`USER`|`VOLUME`|`WORKDIR`
 
-## Commit a container
+## Examples
 
-    $ docker ps
-    ID                  IMAGE               COMMAND             CREATED             STATUS              PORTS
-    c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours
-    197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours
-    $ docker commit c3f279d17e0a  svendowideit/testimage:version3
-    f5283438590d
-    $ docker images
-    REPOSITORY                        TAG                 ID                  CREATED             SIZE
-    svendowideit/testimage            version3            f5283438590d        16 seconds ago      335.7 MB
+### Commit a container
 
-## Commit a container with new configurations
+```bash
+$ docker ps
 
-    {% raw %}
-    $ docker ps
-    ID                  IMAGE               COMMAND             CREATED             STATUS              PORTS
-    c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours
-    197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours
-    $ docker inspect -f "{{ .Config.Env }}" c3f279d17e0a
-    [HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
-    $ docker commit --change "ENV DEBUG true" c3f279d17e0a  svendowideit/testimage:version3
-    f5283438590d
-    $ docker inspect -f "{{ .Config.Env }}" f5283438590d
-    [HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]
-    {% endraw %}
+CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS              NAMES
+c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            desperate_dubinsky
+197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            focused_hamilton
 
-## Commit a container with new `CMD` and `EXPOSE` instructions
+$ docker commit c3f279d17e0a  svendowideit/testimage:version3
 
-    $ docker ps
-    ID                  IMAGE               COMMAND             CREATED             STATUS              PORTS
-    c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours
-    197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours
+f5283438590d
 
-    $ docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" c3f279d17e0a  svendowideit/testimage:version4
-    f5283438590d
+$ docker images
 
-    $ docker run -d svendowideit/testimage:version4
-    89373736e2e7f00bc149bd783073ac43d0507da250e999f3f1036e0db60817c0
+REPOSITORY                        TAG                 ID                  CREATED             SIZE
+svendowideit/testimage            version3            f5283438590d        16 seconds ago      335.7 MB
+```
 
-    $ docker ps
-    ID                  IMAGE               COMMAND                 CREATED             STATUS              PORTS
-    89373736e2e7        testimage:version4  "apachectl -DFOREGROU"  3 seconds ago       Up 2 seconds        80/tcp
-    c3f279d17e0a        ubuntu:12.04        /bin/bash               7 days ago          Up 25 hours
-    197387f1b436        ubuntu:12.04        /bin/bash               7 days ago          Up 25 hours
+### Commit a container with new configurations
+
+```bash
+$ docker ps
+
+ICONTAINER ID       IMAGE               COMMAND             CREATED             STATUS              PORTS              NAMES
+c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            desperate_dubinsky
+197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            focused_hamilton
+
+$ docker inspect -f "{{ .Config.Env }}" c3f279d17e0a
+
+[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
+
+$ docker commit --change "ENV DEBUG true" c3f279d17e0a  svendowideit/testimage:version3
+
+f5283438590d
+
+$ docker inspect -f "{{ .Config.Env }}" f5283438590d
+
+[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]
+```
+
+### Commit a container with new `CMD` and `EXPOSE` instructions
+
+```bash
+$ docker ps
+
+CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS              NAMES
+c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            desperate_dubinsky
+197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            focused_hamilton
+
+$ docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" c3f279d17e0a  svendowideit/testimage:version4
+
+f5283438590d
+
+$ docker run -d svendowideit/testimage:version4
+
+89373736e2e7f00bc149bd783073ac43d0507da250e999f3f1036e0db60817c0
+
+$ docker ps
+
+CONTAINER ID        IMAGE               COMMAND                 CREATED             STATUS              PORTS              NAMES
+89373736e2e7        testimage:version4  "apachectl -DFOREGROU"  3 seconds ago       Up 2 seconds        80/tcp             distracted_fermat
+c3f279d17e0a        ubuntu:12.04        /bin/bash               7 days ago          Up 25 hours                            desperate_dubinsky
+197387f1b436        ubuntu:12.04        /bin/bash               7 days ago          Up 25 hours                            focused_hamilton
+```
diff --git a/docs/reference/commandline/container_prune.md b/docs/reference/commandline/container_prune.md
index 4315640..3b917b2 100644
--- a/docs/reference/commandline/container_prune.md
+++ b/docs/reference/commandline/container_prune.md
@@ -25,8 +25,14 @@
       --help    Print usage
 ```
 
+## Description
+
+Removes all stopped containers.
+
 ## Examples
 
+### Prune containers
+
 ```bash
 $ docker container prune
 WARNING! This will remove all stopped containers.
@@ -38,7 +44,7 @@
 Total reclaimed space: 212 B
 ```
 
-## Related information
+## Related commands
 
 * [system df](system_df.md)
 * [volume prune](volume_prune.md)
diff --git a/docs/reference/commandline/cp.md b/docs/reference/commandline/cp.md
index fcfd35f..abd3a37 100644
--- a/docs/reference/commandline/cp.md
+++ b/docs/reference/commandline/cp.md
@@ -31,6 +31,8 @@
       --help          Print usage
 ```
 
+## Description
+
 The `docker cp` utility copies the contents of `SRC_PATH` to the `DEST_PATH`.
 You can copy from the container's file system to the local machine or the
 reverse, from the local filesystem to the container. If `-` is specified for
@@ -96,15 +98,16 @@
 It is not possible to copy certain system files such as resources under
 `/proc`, `/sys`, `/dev`, [tmpfs](run.md#mount-tmpfs-tmpfs), and mounts created by
 the user in the container. However, you can still copy such files by manually
-running `tar` in `docker exec`. For example (consider `SRC_PATH` and `DEST_PATH`
-are directories):
+running `tar` in `docker exec`. Both of the following examples do the same thing
+in different ways (consider `SRC_PATH` and `DEST_PATH` are directories):
 
-    $ docker exec foo tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | tar Cxf DEST_PATH -
+```bash
+$ docker exec foo tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | tar Cxf DEST_PATH -
+```
 
-or
-
-    $ tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | docker exec -i foo tar Cxf DEST_PATH -
-
+```bash
+$ tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | docker exec -i foo tar Cxf DEST_PATH -
+```
 
 Using `-` as the `SRC_PATH` streams the contents of `STDIN` as a tar archive.
 The command extracts the content of the tar to the `DEST_PATH` in container's
diff --git a/docs/reference/commandline/create.md b/docs/reference/commandline/create.md
index e6582e4..00de1dc 100644
--- a/docs/reference/commandline/create.md
+++ b/docs/reference/commandline/create.md
@@ -132,6 +132,7 @@
       --volumes-from value          Mount volumes from the specified container(s) (default [])
   -w, --workdir string              Working directory inside the container
 ```
+## Description
 
 The `docker create` command creates a writeable container layer over the
 specified image and prepares it for running the specified command.  The
@@ -147,42 +148,64 @@
 
 ## Examples
 
-    $ docker create -t -i fedora bash
-    6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
-    $ docker start -a -i 6d8af538ec5
-    bash-4.2#
+### Create and start a container
+
+```bash
+$ docker create -t -i fedora bash
+
+6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
+
+$ docker start -a -i 6d8af538ec5
+
+bash-4.2#
+```
+
+### Initialize volumes
 
 As of v1.4.0 container volumes are initialized during the `docker create` phase
 (i.e., `docker run` too). For example, this allows you to `create` the `data`
 volume container, and then use it from another container:
 
-    $ docker create -v /data --name data ubuntu
-    240633dfbb98128fa77473d3d9018f6123b99c454b3251427ae190a7d951ad57
-    $ docker run --rm --volumes-from data ubuntu ls -la /data
-    total 8
-    drwxr-xr-x  2 root root 4096 Dec  5 04:10 .
-    drwxr-xr-x 48 root root 4096 Dec  5 04:11 ..
+```bash
+$ docker create -v /data --name data ubuntu
+
+240633dfbb98128fa77473d3d9018f6123b99c454b3251427ae190a7d951ad57
+
+$ docker run --rm --volumes-from data ubuntu ls -la /data
+
+total 8
+drwxr-xr-x  2 root root 4096 Dec  5 04:10 .
+drwxr-xr-x 48 root root 4096 Dec  5 04:11 ..
+```
 
 Similarly, `create` a host directory bind mounted volume container, which can
 then be used from the subsequent container:
 
-    $ docker create -v /home/docker:/docker --name docker ubuntu
-    9aa88c08f319cd1e4515c3c46b0de7cc9aa75e878357b1e96f91e2c773029f03
-    $ docker run --rm --volumes-from docker ubuntu ls -la /docker
-    total 20
-    drwxr-sr-x  5 1000 staff  180 Dec  5 04:00 .
-    drwxr-xr-x 48 root root  4096 Dec  5 04:13 ..
-    -rw-rw-r--  1 1000 staff 3833 Dec  5 04:01 .ash_history
-    -rw-r--r--  1 1000 staff  446 Nov 28 11:51 .ashrc
-    -rw-r--r--  1 1000 staff   25 Dec  5 04:00 .gitconfig
-    drwxr-sr-x  3 1000 staff   60 Dec  1 03:28 .local
-    -rw-r--r--  1 1000 staff  920 Nov 28 11:51 .profile
-    drwx--S---  2 1000 staff  460 Dec  5 00:51 .ssh
-    drwxr-xr-x 32 1000 staff 1140 Dec  5 04:01 docker
+```bash
+$ docker create -v /home/docker:/docker --name docker ubuntu
+
+9aa88c08f319cd1e4515c3c46b0de7cc9aa75e878357b1e96f91e2c773029f03
+
+$ docker run --rm --volumes-from docker ubuntu ls -la /docker
+
+total 20
+drwxr-sr-x  5 1000 staff  180 Dec  5 04:00 .
+drwxr-xr-x 48 root root  4096 Dec  5 04:13 ..
+-rw-rw-r--  1 1000 staff 3833 Dec  5 04:01 .ash_history
+-rw-r--r--  1 1000 staff  446 Nov 28 11:51 .ashrc
+-rw-r--r--  1 1000 staff   25 Dec  5 04:00 .gitconfig
+drwxr-sr-x  3 1000 staff   60 Dec  1 03:28 .local
+-rw-r--r--  1 1000 staff  920 Nov 28 11:51 .profile
+drwx--S---  2 1000 staff  460 Dec  5 00:51 .ssh
+drwxr-xr-x 32 1000 staff 1140 Dec  5 04:01 docker
+```
+
 
 Set storage driver options per container.
 
-    $ docker create -it --storage-opt size=120G fedora /bin/bash
+```bash
+$ docker create -it --storage-opt size=120G fedora /bin/bash
+```
 
 This (size) will allow to set the container rootfs size to 120G at creation time.
 This option is only available for the `devicemapper`, `btrfs`, `overlay2`,
diff --git a/docs/reference/commandline/deploy.md b/docs/reference/commandline/deploy.md
index 53074b2..a430a90 100644
--- a/docs/reference/commandline/deploy.md
+++ b/docs/reference/commandline/deploy.md
@@ -14,7 +14,9 @@
      will be rejected.
 -->
 
-# deploy (alias for stack deploy) (experimental)
+# deploy (experimental)
+
+An alias for `stack deploy`.
 
 ```markdown
 Usage:  docker deploy [OPTIONS] STACK
@@ -31,15 +33,20 @@
       --with-registry-auth    Send registry authentication details to Swarm agents
 ```
 
+## Description
+
 Create and update a stack from a `compose` or a `dab` file on the swarm. This command
 has to be run targeting a manager node.
 
-## Compose file
+## Examples
+
+### Compose file
 
 The `deploy` command supports compose file version `3.0` and above.
 
 ```bash
 $ docker stack deploy --compose-file docker-compose.yml vossibility
+
 Ignoring unsupported options: links
 
 Creating network vossibility_vossibility
@@ -54,8 +61,9 @@
 
 You can verify that the services were correctly created
 
-```
+```bash
 $ docker service ls
+
 ID            NAME                               MODE        REPLICAS  IMAGE
 29bv0vnlm903  vossibility_lookupd                replicated  1/1       nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
 4awt47624qwh  vossibility_nsqd                   replicated  1/1       nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
@@ -65,10 +73,11 @@
 axqh55ipl40h  vossibility_vossibility-collector  replicated  1/1       icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba
 ```
 
-## DAB file
+### DAB file
 
 ```bash
 $ docker stack deploy --bundle-file vossibility-stack.dab vossibility
+
 Loading bundle from vossibility-stack.dab
 Creating service vossibility_elasticsearch
 Creating service vossibility_kibana
@@ -82,6 +91,7 @@
 
 ```bash
 $ docker service ls
+
 ID            NAME                               MODE        REPLICAS  IMAGE
 29bv0vnlm903  vossibility_lookupd                replicated  1/1       nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
 4awt47624qwh  vossibility_nsqd                   replicated  1/1       nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
@@ -91,7 +101,7 @@
 axqh55ipl40h  vossibility_vossibility-collector  replicated  1/1       icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba
 ```
 
-## Related information
+## Related commands
 
 * [stack config](stack_config.md)
 * [stack deploy](stack_deploy.md)
diff --git a/docs/reference/commandline/diff.md b/docs/reference/commandline/diff.md
index be27678..823831e 100644
--- a/docs/reference/commandline/diff.md
+++ b/docs/reference/commandline/diff.md
@@ -24,8 +24,10 @@
       --help   Print usage
 ```
 
-List the changed files and directories in a container᾿s filesystem.
- There are 3 events that are listed in the `diff`:
+## Description
+
+List the changed files and directories in a container᾿s filesystem since the
+container was created. Three different types of change are tracked:
 
 1. `A` - Add
 2. `D` - Delete
diff --git a/docs/reference/commandline/dockerd.md b/docs/reference/commandline/dockerd.md
index 24ac776..869e4ac 100644
--- a/docs/reference/commandline/dockerd.md
+++ b/docs/reference/commandline/dockerd.md
@@ -92,13 +92,17 @@
 
 Options with [] may be specified multiple times.
 
-dockerd is the persistent process that manages containers. Docker
+## Description
+
+`dockerd` is the persistent process that manages containers. Docker
 uses different binaries for the daemon and client. To run the daemon you
 type `dockerd`.
 
 To run the daemon with debug output, use `dockerd -D`.
 
-## Daemon socket option
+## Examples
+
+### Daemon socket option
 
 The Docker daemon can listen for [Docker Engine API](../api/)
 requests via three different types of Socket: `unix`, `tcp`, and `fd`.
@@ -117,8 +121,7 @@
 conventional to use port `2375` for un-encrypted, and port `2376` for encrypted
 communication with the daemon.
 
-> **Note:**
-> If you're using an HTTPS encrypted socket, keep in mind that only
+> **Note**: If you're using an HTTPS encrypted socket, keep in mind that only
 > TLS1.0 and greater are supported. Protocols SSLv3 and under are not
 > supported anymore for security reasons.
 
@@ -135,18 +138,21 @@
 
 ```bash
 # listen using the default unix socket, and on 2 specific IP addresses on this host.
+
 $ sudo dockerd -H unix:///var/run/docker.sock -H tcp://192.168.59.106 -H tcp://10.10.10.2
 ```
 
 The Docker client will honor the `DOCKER_HOST` environment variable to set the
-`-H` flag for the client.
+`-H` flag for the client. Use **one** of the following commands:
 
 ```bash
 $ docker -H tcp://0.0.0.0:2375 ps
-# or
+```
+
+```bash
 $ export DOCKER_HOST="tcp://0.0.0.0:2375"
+
 $ docker ps
-# both are equal
 ```
 
 Setting the `DOCKER_TLS_VERIFY` environment variable to any value other than
@@ -164,7 +170,7 @@
 environment variables (or the lowercase versions thereof). `HTTPS_PROXY` takes
 precedence over `HTTP_PROXY`.
 
-### Bind Docker to another host/port or a Unix socket
+#### Bind Docker to another host/port or a Unix socket
 
 > **Warning**:
 > Changing the default `docker` daemon binding to a
@@ -230,7 +236,7 @@
 $ docker -H tcp://127.0.0.1:2375 pull ubuntu
 ```
 
-### Daemon storage-driver option
+### Daemon storage-driver
 
 The Docker daemon has support for several different image layer storage
 drivers: `aufs`, `devicemapper`, `btrfs`, `zfs`, `overlay` and `overlay2`.
@@ -267,22 +273,20 @@
 `overlay` as efficient with memory as `aufs` driver. Call
 `dockerd -s overlay` to use it.
 
-> **Note:**
-> As promising as `overlay` is, the feature is still quite young and should not
-> be used in production. Most notably, using `overlay` can cause excessive
-> inode consumption (especially as the number of images grows), as well as
-> being incompatible with the use of RPMs.
+> **Note**: As promising as `overlay` is, the feature is still quite young and
+> should not be used in production. Most notably, using `overlay` can cause
+> excessive inode consumption (especially as the number of images grows), as
+> well as > being incompatible with the use of RPMs.
 
 The `overlay2` uses the same fast union filesystem but takes advantage of
 [additional features](https://lkml.org/lkml/2015/2/11/106) added in Linux
 kernel 4.0 to avoid excessive inode consumption. Call `dockerd -s overlay2`
 to use it.
 
-> **Note:**
-> Both `overlay` and `overlay2` are currently unsupported on `btrfs` or any
-> Copy on Write filesystem and should only be used over `ext4` partitions.
+> **Note**: Both `overlay` and `overlay2` are currently unsupported on `btrfs`
+> or any Copy on Write filesystem and should only be used over `ext4` partitions.
 
-### Storage driver options
+### Options per storage driver
 
 Particular storage-driver can be configured with options specified with
 `--storage-opt` flags. Options for `devicemapper` are prefixed with `dm`,
@@ -290,380 +294,376 @@
 
 #### Devicemapper options
 
-*   `dm.thinpooldev`
+##### `dm.thinpooldev`
 
-    Specifies a custom block storage device to use for the thin pool.
+Specifies a custom block storage device to use for the thin pool.
 
-    If using a block device for device mapper storage, it is best to use `lvm`
-    to create and manage the thin-pool volume. This volume is then handed to Docker
-    to exclusively create snapshot volumes needed for images and containers.
+If using a block device for device mapper storage, it is best to use `lvm`
+to create and manage the thin-pool volume. This volume is then handed to Docker
+to exclusively create snapshot volumes needed for images and containers.
 
-    Managing the thin-pool outside of Engine makes for the most feature-rich
-    method of having Docker utilize device mapper thin provisioning as the
-    backing storage for Docker containers. The highlights of the lvm-based
-    thin-pool management feature include: automatic or interactive thin-pool
-    resize support, dynamically changing thin-pool features, automatic thinp
-    metadata checking when lvm activates the thin-pool, etc.
+Managing the thin-pool outside of Engine makes for the most feature-rich
+method of having Docker utilize device mapper thin provisioning as the
+backing storage for Docker containers. The highlights of the lvm-based
+thin-pool management feature include: automatic or interactive thin-pool
+resize support, dynamically changing thin-pool features, automatic thinp
+metadata checking when lvm activates the thin-pool, etc.
 
-    As a fallback if no thin pool is provided, loopback files are
-    created. Loopback is very slow, but can be used without any
-    pre-configuration of storage. It is strongly recommended that you do
-    not use loopback in production. Ensure your Engine daemon has a
-    `--storage-opt dm.thinpooldev` argument provided.
+As a fallback if no thin pool is provided, loopback files are
+created. Loopback is very slow, but can be used without any
+pre-configuration of storage. It is strongly recommended that you do
+not use loopback in production. Ensure your Engine daemon has a
+`--storage-opt dm.thinpooldev` argument provided.
 
-    Example use:
+###### Example:
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.thinpooldev=/dev/mapper/thin-pool
-    ```
+```bash
+$ sudo dockerd --storage-opt dm.thinpooldev=/dev/mapper/thin-pool
+```
 
-*   `dm.basesize`
+##### `dm.basesize`
 
-    Specifies the size to use when creating the base device, which limits the
-    size of images and containers. The default value is 10G. Note, thin devices
-    are inherently "sparse", so a 10G device which is mostly empty doesn't use
-    10 GB of space on the pool. However, the filesystem will use more space for
-    the empty case the larger the device is.
+Specifies the size to use when creating the base device, which limits the
+size of images and containers. The default value is 10G. Note, thin devices
+are inherently "sparse", so a 10G device which is mostly empty doesn't use
+10 GB of space on the pool. However, the filesystem will use more space for
+the empty case the larger the device is.
 
-    The base device size can be increased at daemon restart which will allow
-    all future images and containers (based on those new images) to be of the
-    new base device size.
+The base device size can be increased at daemon restart which will allow
+all future images and containers (based on those new images) to be of the
+new base device size.
 
-    Example use:
+###### Examples
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.basesize=50G
-    ```
+```bash
+$ sudo dockerd --storage-opt dm.basesize=50G
+```
 
-    This will increase the base device size to 50G. The Docker daemon will throw an
-    error if existing base device size is larger than 50G. A user can use
-    this option to expand the base device size however shrinking is not permitted.
+This will increase the base device size to 50G. The Docker daemon will throw an
+error if existing base device size is larger than 50G. A user can use
+this option to expand the base device size however shrinking is not permitted.
 
-    This value affects the system-wide "base" empty filesystem
-    that may already be initialized and inherited by pulled images. Typically,
-    a change to this value requires additional steps to take effect:
+This value affects the system-wide "base" empty filesystem
+that may already be initialized and inherited by pulled images. Typically,
+a change to this value requires additional steps to take effect:
 
-     ```bash
-    $ sudo service docker stop
-    $ sudo rm -rf /var/lib/docker
-    $ sudo service docker start
-    ```
+ ```bash
+$ sudo service docker stop
 
-    Example use:
+$ sudo rm -rf /var/lib/docker
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.basesize=20G
-    ```
+$ sudo service docker start
+```
 
-*   `dm.loopdatasize`
 
-    > **Note**:
-    > This option configures devicemapper loopback, which should not
-    > be used in production.
+##### `dm.loopdatasize`
 
-    Specifies the size to use when creating the loopback file for the
-    "data" device which is used for the thin pool. The default size is
-    100G. The file is sparse, so it will not initially take up this
-    much space.
+> **Note**: This option configures devicemapper loopback, which should not
+> be used in production.
 
-    Example use:
+Specifies the size to use when creating the loopback file for the
+"data" device which is used for the thin pool. The default size is
+100G. The file is sparse, so it will not initially take up this
+much space.
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.loopdatasize=200G
-    ```
+###### Example
 
-*   `dm.loopmetadatasize`
+```bash
+$ sudo dockerd --storage-opt dm.loopdatasize=200G
+```
 
-    > **Note**:
-    > This option configures devicemapper loopback, which should not
-    > be used in production.
+##### `dm.loopmetadatasize`
 
-    Specifies the size to use when creating the loopback file for the
-    "metadata" device which is used for the thin pool. The default size
-    is 2G. The file is sparse, so it will not initially take up
-    this much space.
+> **Note**: This option configures devicemapper loopback, which should not
+> be used in production.
 
-    Example use:
+Specifies the size to use when creating the loopback file for the
+"metadata" device which is used for the thin pool. The default size
+is 2G. The file is sparse, so it will not initially take up
+this much space.
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.loopmetadatasize=4G
-    ```
+###### Example
 
-*   `dm.fs`
+```bash
+$ sudo dockerd --storage-opt dm.loopmetadatasize=4G
+```
 
-    Specifies the filesystem type to use for the base device. The supported
-    options are "ext4" and "xfs". The default is "xfs"
+##### `dm.fs`
 
-    Example use:
+Specifies the filesystem type to use for the base device. The supported
+options are "ext4" and "xfs". The default is "xfs"
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.fs=ext4
-    ```
+###### Example
 
-*   `dm.mkfsarg`
+```bash
+$ sudo dockerd --storage-opt dm.fs=ext4
+```
 
-    Specifies extra mkfs arguments to be used when creating the base device.
+##### `dm.mkfsarg`
 
-    Example use:
+Specifies extra mkfs arguments to be used when creating the base device.
 
-    ```bash
-    $ sudo dockerd --storage-opt "dm.mkfsarg=-O ^has_journal"
-    ```
+###### Example
 
-*   `dm.mountopt`
+```bash
+$ sudo dockerd --storage-opt "dm.mkfsarg=-O ^has_journal"
+```
 
-    Specifies extra mount options used when mounting the thin devices.
+##### `dm.mountopt`
 
-    Example use:
+Specifies extra mount options used when mounting the thin devices.
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.mountopt=nodiscard
-    ```
+###### Example
 
-*   `dm.datadev`
+```bash
+$ sudo dockerd --storage-opt dm.mountopt=nodiscard
+```
 
-    (Deprecated, use `dm.thinpooldev`)
+##### `dm.datadev`
 
-    Specifies a custom blockdevice to use for data for the thin pool.
+(Deprecated, use `dm.thinpooldev`)
 
-    If using a block device for device mapper storage, ideally both datadev and
-    metadatadev should be specified to completely avoid using the loopback
-    device.
+Specifies a custom blockdevice to use for data for the thin pool.
 
-    Example use:
+If using a block device for device mapper storage, ideally both `datadev` and
+`metadatadev` should be specified to completely avoid using the loopback
+device.
 
-    ```bash
-    $ sudo dockerd \
-          --storage-opt dm.datadev=/dev/sdb1 \
-          --storage-opt dm.metadatadev=/dev/sdc1
-    ```
+###### Example
 
-*   `dm.metadatadev`
+```bash
+$ sudo dockerd \
+      --storage-opt dm.datadev=/dev/sdb1 \
+      --storage-opt dm.metadatadev=/dev/sdc1
+```
 
-    (Deprecated, use `dm.thinpooldev`)
+##### `dm.metadatadev`
 
-    Specifies a custom blockdevice to use for metadata for the thin pool.
+(Deprecated, use `dm.thinpooldev`)
 
-    For best performance the metadata should be on a different spindle than the
-    data, or even better on an SSD.
+Specifies a custom blockdevice to use for metadata for the thin pool.
 
-    If setting up a new metadata pool it is required to be valid. This can be
-    achieved by zeroing the first 4k to indicate empty metadata, like this:
+For best performance the metadata should be on a different spindle than the
+data, or even better on an SSD.
 
-    ```bash
-    $ dd if=/dev/zero of=$metadata_dev bs=4096 count=1
-    ```
+If setting up a new metadata pool it is required to be valid. This can be
+achieved by zeroing the first 4k to indicate empty metadata, like this:
 
-    Example use:
+```bash
+$ dd if=/dev/zero of=$metadata_dev bs=4096 count=1
+```
 
-    ```bash
-    $ sudo dockerd \
-          --storage-opt dm.datadev=/dev/sdb1 \
-          --storage-opt dm.metadatadev=/dev/sdc1
-    ```
+###### Example
 
-*   `dm.blocksize`
+```bash
+$ sudo dockerd \
+      --storage-opt dm.datadev=/dev/sdb1 \
+      --storage-opt dm.metadatadev=/dev/sdc1
+```
+
+##### `dm.blocksize`
 
-    Specifies a custom blocksize to use for the thin pool. The default
-    blocksize is 64K.
+Specifies a custom blocksize to use for the thin pool. The default
+blocksize is 64K.
 
-    Example use:
+###### Example
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.blocksize=512K
-    ```
+```bash
+$ sudo dockerd --storage-opt dm.blocksize=512K
+```
 
-*   `dm.blkdiscard`
+##### `dm.blkdiscard`
 
-    Enables or disables the use of blkdiscard when removing devicemapper
-    devices. This is enabled by default (only) if using loopback devices and is
-    required to resparsify the loopback file on image/container removal.
+Enables or disables the use of `blkdiscard` when removing devicemapper
+devices. This is enabled by default (only) if using loopback devices and is
+required to resparsify the loopback file on image/container removal.
 
-    Disabling this on loopback can lead to *much* faster container removal
-    times, but will make the space used in `/var/lib/docker` directory not be
-    returned to the system for other use when containers are removed.
+Disabling this on loopback can lead to *much* faster container removal
+times, but will make the space used in `/var/lib/docker` directory not be
+returned to the system for other use when containers are removed.
 
-    Example use:
+###### Examples
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.blkdiscard=false
-    ```
+```bash
+$ sudo dockerd --storage-opt dm.blkdiscard=false
+```
 
-*   `dm.override_udev_sync_check`
+##### `dm.override_udev_sync_check`
 
-    Overrides the `udev` synchronization checks between `devicemapper` and `udev`.
-    `udev` is the device manager for the Linux kernel.
+Overrides the `udev` synchronization checks between `devicemapper` and `udev`.
+`udev` is the device manager for the Linux kernel.
 
-    To view the `udev` sync support of a Docker daemon that is using the
-    `devicemapper` driver, run:
+To view the `udev` sync support of a Docker daemon that is using the
+`devicemapper` driver, run:
 
-    ```bash
-    $ docker info
-    [...]
-    Udev Sync Supported: true
-    [...]
-    ```
+```bash
+$ docker info
+[...]
+Udev Sync Supported: true
+[...]
+```
 
-    When `udev` sync support is `true`, then `devicemapper` and udev can
-    coordinate the activation and deactivation of devices for containers.
+When `udev` sync support is `true`, then `devicemapper` and udev can
+coordinate the activation and deactivation of devices for containers.
 
-    When `udev` sync support is `false`, a race condition occurs between
-    the`devicemapper` and `udev` during create and cleanup. The race condition
-    results in errors and failures. (For information on these failures, see
-    [docker#4036](https://github.com/docker/docker/issues/4036))
+When `udev` sync support is `false`, a race condition occurs between
+the`devicemapper` and `udev` during create and cleanup. The race condition
+results in errors and failures. (For information on these failures, see
+[docker#4036](https://github.com/docker/docker/issues/4036))
 
-    To allow the `docker` daemon to start, regardless of `udev` sync not being
-    supported, set `dm.override_udev_sync_check` to true:
+To allow the `docker` daemon to start, regardless of `udev` sync not being
+supported, set `dm.override_udev_sync_check` to true:
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.override_udev_sync_check=true
-    ```
+```bash
+$ sudo dockerd --storage-opt dm.override_udev_sync_check=true
+```
 
-    When this value is `true`, the  `devicemapper` continues and simply warns
-    you the errors are happening.
+When this value is `true`, the  `devicemapper` continues and simply warns
+you the errors are happening.
 
-    > **Note:**
-    > The ideal is to pursue a `docker` daemon and environment that does
-    > support synchronizing with `udev`. For further discussion on this
-    > topic, see [docker#4036](https://github.com/docker/docker/issues/4036).
-    > Otherwise, set this flag for migrating existing Docker daemons to
-    > a daemon with a supported environment.
+> **Note**: The ideal is to pursue a `docker` daemon and environment that does
+> support synchronizing with `udev`. For further discussion on this
+> topic, see [docker#4036](https://github.com/docker/docker/issues/4036).
+> Otherwise, set this flag for migrating existing Docker daemons to
+> a daemon with a supported environment.
 
-*   `dm.use_deferred_removal`
+##### `dm.use_deferred_removal`
 
-    Enables use of deferred device removal if `libdm` and the kernel driver
-    support the mechanism.
+Enables use of deferred device removal if `libdm` and the kernel driver
+support the mechanism.
 
-    Deferred device removal means that if device is busy when devices are
-    being removed/deactivated, then a deferred removal is scheduled on
-    device. And devices automatically go away when last user of the device
-    exits.
+Deferred device removal means that if device is busy when devices are
+being removed/deactivated, then a deferred removal is scheduled on
+device. And devices automatically go away when last user of the device
+exits.
 
-    For example, when a container exits, its associated thin device is removed.
-    If that device has leaked into some other mount namespace and can't be
-    removed, the container exit still succeeds and this option causes the
-    system to schedule the device for deferred removal. It does not wait in a
-    loop trying to remove a busy device.
+For example, when a container exits, its associated thin device is removed.
+If that device has leaked into some other mount namespace and can't be
+removed, the container exit still succeeds and this option causes the
+system to schedule the device for deferred removal. It does not wait in a
+loop trying to remove a busy device.
 
-    Example use:
+###### Example
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.use_deferred_removal=true
-    ```
+```bash
+$ sudo dockerd --storage-opt dm.use_deferred_removal=true
+```
 
-*   `dm.use_deferred_deletion`
+##### `dm.use_deferred_deletion`
 
-    Enables use of deferred device deletion for thin pool devices. By default,
-    thin pool device deletion is synchronous. Before a container is deleted,
-    the Docker daemon removes any associated devices. If the storage driver
-    can not remove a device, the container deletion fails and daemon returns.
+Enables use of deferred device deletion for thin pool devices. By default,
+thin pool device deletion is synchronous. Before a container is deleted,
+the Docker daemon removes any associated devices. If the storage driver
+can not remove a device, the container deletion fails and daemon returns.
 
-        Error deleting container: Error response from daemon: Cannot destroy container
+```none
+Error deleting container: Error response from daemon: Cannot destroy container
+```
 
-    To avoid this failure, enable both deferred device deletion and deferred
-    device removal on the daemon.
+To avoid this failure, enable both deferred device deletion and deferred
+device removal on the daemon.
 
-    ```bash
-    $ sudo dockerd \
-          --storage-opt dm.use_deferred_deletion=true \
-          --storage-opt dm.use_deferred_removal=true
-    ```
+```bash
+$ sudo dockerd \
+      --storage-opt dm.use_deferred_deletion=true \
+      --storage-opt dm.use_deferred_removal=true
+```
 
-    With these two options enabled, if a device is busy when the driver is
-    deleting a container, the driver marks the device as deleted. Later, when
-    the device isn't in use, the driver deletes it.
+With these two options enabled, if a device is busy when the driver is
+deleting a container, the driver marks the device as deleted. Later, when
+the device isn't in use, the driver deletes it.
 
-    In general it should be safe to enable this option by default. It will help
-    when unintentional leaking of mount point happens across multiple mount
-    namespaces.
+In general it should be safe to enable this option by default. It will help
+when unintentional leaking of mount point happens across multiple mount
+namespaces.
 
-*   `dm.min_free_space`
+##### `dm.min_free_space`
 
-    Specifies the min free space percent in a thin pool require for new device
-    creation to succeed. This check applies to both free data space as well
-    as free metadata space. Valid values are from 0% - 99%. Value 0% disables
-    free space checking logic. If user does not specify a value for this option,
-    the Engine uses a default value of 10%.
+Specifies the min free space percent in a thin pool require for new device
+creation to succeed. This check applies to both free data space as well
+as free metadata space. Valid values are from 0% - 99%. Value 0% disables
+free space checking logic. If user does not specify a value for this option,
+the Engine uses a default value of 10%.
 
-    Whenever a new a thin pool device is created (during `docker pull` or during
-    container creation), the Engine checks if the minimum free space is
-    available. If sufficient space is unavailable, then device creation fails
-    and any relevant `docker` operation fails.
+Whenever a new a thin pool device is created (during `docker pull` or during
+container creation), the Engine checks if the minimum free space is
+available. If sufficient space is unavailable, then device creation fails
+and any relevant `docker` operation fails.
 
-    To recover from this error, you must create more free space in the thin pool
-    to recover from the error. You can create free space by deleting some images
-    and containers from the thin pool. You can also add more storage to the thin
-    pool.
+To recover from this error, you must create more free space in the thin pool
+to recover from the error. You can create free space by deleting some images
+and containers from the thin pool. You can also add more storage to the thin
+pool.
 
-    To add more space to a LVM (logical volume management) thin pool, just add
-    more storage to the volume group container thin pool; this should automatically
-    resolve any errors. If your configuration uses loop devices, then stop the
-    Engine daemon, grow the size of loop files and restart the daemon to resolve
-    the issue.
+To add more space to a LVM (logical volume management) thin pool, just add
+more storage to the volume group container thin pool; this should automatically
+resolve any errors. If your configuration uses loop devices, then stop the
+Engine daemon, grow the size of loop files and restart the daemon to resolve
+the issue.
 
-    Example use:
+###### Example
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.min_free_space=10%
-    ```
+```bash
+$ sudo dockerd --storage-opt dm.min_free_space=10%
+```
 
-*  `dm.xfs_nospace_max_retries`
+##### `dm.xfs_nospace_max_retries`
 
-    Specifies the maximum number of retries XFS should attempt to complete
-    IO when ENOSPC (no space) error is returned by underlying storage device.
+Specifies the maximum number of retries XFS should attempt to complete
+IO when ENOSPC (no space) error is returned by underlying storage device.
 
-    By default XFS retries infinitely for IO to finish and this can result
-    in unkillable process. To change this behavior one can set
-    xfs_nospace_max_retries to say 0 and XFS will not retry IO after getting
-    ENOSPC and will shutdown filesystem.
+By default XFS retries infinitely for IO to finish and this can result
+in unkillable process. To change this behavior one can set
+xfs_nospace_max_retries to say 0 and XFS will not retry IO after getting
+ENOSPC and will shutdown filesystem.
 
-    Example use:
+###### Example
 
-    ```bash
-    $ sudo dockerd --storage-opt dm.xfs_nospace_max_retries=0
-    ```
+```bash
+$ sudo dockerd --storage-opt dm.xfs_nospace_max_retries=0
+```
 
 #### ZFS options
 
-*   `zfs.fsname`
+##### `zfs.fsname`
 
-    Set zfs filesystem under which docker will create its own datasets.
-    By default docker will pick up the zfs filesystem where docker graph
-    (`/var/lib/docker`) is located.
+Set zfs filesystem under which docker will create its own datasets.
+By default docker will pick up the zfs filesystem where docker graph
+(`/var/lib/docker`) is located.
 
-    Example use:
+###### Example
 
-    ```bash
-    $ sudo dockerd -s zfs --storage-opt zfs.fsname=zroot/docker
-    ```
+```bash
+$ sudo dockerd -s zfs --storage-opt zfs.fsname=zroot/docker
+```
 
 #### Btrfs options
 
-*   `btrfs.min_space`
+##### `btrfs.min_space`
 
-    Specifies the minimum size to use when creating the subvolume which is used
-    for containers. If user uses disk quota for btrfs when creating or running
-    a container with **--storage-opt size** option, docker should ensure the
-    **size** cannot be smaller than **btrfs.min_space**.
+Specifies the minimum size to use when creating the subvolume which is used
+for containers. If user uses disk quota for btrfs when creating or running
+a container with **--storage-opt size** option, docker should ensure the
+**size** cannot be smaller than **btrfs.min_space**.
 
-    Example use:
+###### Example
 
-    ```bash
-    $ sudo dockerd -s btrfs --storage-opt btrfs.min_space=10G
-    ```
+```bash
+$ sudo dockerd -s btrfs --storage-opt btrfs.min_space=10G
+```
 
 #### Overlay2 options
 
-*   `overlay2.override_kernel_check`
+##### `overlay2.override_kernel_check`
 
-    Overrides the Linux kernel version check allowing overlay2. Support for
-    specifying multiple lower directories needed by overlay2 was added to the
-    Linux kernel in 4.0.0. However some older kernel versions may be patched
-    to add multiple lower directory support for OverlayFS. This option should
-    only be used after verifying this support exists in the kernel. Applying
-    this option on a kernel without this support will cause failures on mount.
+Overrides the Linux kernel version check allowing overlay2. Support for
+specifying multiple lower directories needed by overlay2 was added to the
+Linux kernel in 4.0.0. However, some older kernel versions may be patched
+to add multiple lower directory support for OverlayFS. This option should
+only be used after verifying this support exists in the kernel. Applying
+this option on a kernel without this support will cause failures on mount.
 
-## Docker runtime execution options
+### Docker runtime execution options
 
 The Docker daemon relies on a
 [OCI](https://github.com/opencontainers/runtime-spec) compliant runtime
@@ -706,9 +706,9 @@
 $ sudo dockerd --add-runtime runc=runc --add-runtime custom=/usr/local/bin/my-runc-replacement
 ```
 
-> **Note**: defining runtime arguments via the command line is not supported.
+> **Note**: Defining runtime arguments via the command line is not supported.
 
-## Options for the runtime
+#### Options for the runtime
 
 You can configure the runtime using options specified
 with the `--exec-opt` flag. All the flag's options have the `native` prefix. A
@@ -738,7 +738,7 @@
 value is specified on daemon start, on Windows client, the default is
 `hyperv`, and on Windows server, the default is `process`.
 
-## Daemon DNS options
+#### Daemon DNS options
 
 To set the DNS server for all Docker containers, use:
 
@@ -753,8 +753,7 @@
 $ sudo dockerd --dns-search example.com
 ```
 
-
-## Insecure registries
+#### Insecure registries
 
 Docker considers a private registry either secure or insecure. In the rest of
 this section, *registry* is used for *private registry*, and `myregistry:5000`
@@ -798,11 +797,11 @@
 testing purposes.  For increased security, users should add their CA to their
 system's list of trusted CAs instead of enabling `--insecure-registry`.
 
-## Legacy Registries
+##### Legacy Registries
 
 Enabling `--disable-legacy-registry` forces a docker daemon to only interact with registries which support the V2 protocol.  Specifically, the daemon will not attempt `push`, `pull` and `login` to v1 registries.  The exception to this is `search` which can still be performed on v1 registries.
 
-## Running a Docker daemon behind an HTTPS_PROXY
+#### Running a Docker daemon behind an HTTPS_PROXY
 
 When running inside a LAN that uses an `HTTPS` proxy, the Docker Hub
 certificates will be replaced by the proxy's certificates. These certificates
@@ -819,7 +818,7 @@
 your `docker build`s and running containers will need extra configuration to
 use the proxy
 
-## Default Ulimits
+#### Default `ulimit` settings
 
 `--default-ulimit` allows you to set the default `ulimit` options to use for
 all containers. It takes the same options as `--ulimit` for `docker run`. If
@@ -831,7 +830,7 @@
 set the maximum number of processes available to a user, not to a container. For details
 please check the [run](run.md) reference.
 
-## Nodes discovery
+#### Node discovery
 
 The `--cluster-advertise` option specifies the `host:port` or `interface:port`
 combination that this particular daemon instance should use when advertising
@@ -857,39 +856,16 @@
 
 The currently supported cluster store options are:
 
-*   `discovery.heartbeat`
+| Option                | Description |
+|-----------------------|-------------|
+| `discovery.heartbeat` | Specifies the heartbeat timer in seconds which is used by the daemon as a `keepalive` mechanism to make sure discovery module treats the node as alive in the cluster. If not configured, the default value is 20 seconds. |
+| `discovery.ttl`       | Specifies the TTL (time-to-live) in seconds which is used by the discovery module to timeout a node if a valid heartbeat is not received within the configured ttl value. If not configured, the default value is 60 seconds. |
+| `kv.cacertfile`       | Specifies the path to a local file with PEM encoded CA certificates to trust. |
+| `kv.certfile`         | Specifies the path to a local file with a PEM encoded certificate. This certificate is used as the client cert for communication with the Key/Value store. |
+| `kv.keyfile`          | Specifies the path to a local file with a PEM encoded private key. This private key is used as the client key for communication with the Key/Value store. |
+| `kv.path`             | Specifies the path in the Key/Value store. If not configured, the default value is 'docker/nodes'. |
 
-    Specifies the heartbeat timer in seconds which is used by the daemon as a
-    keepalive mechanism to make sure discovery module treats the node as alive
-    in the cluster. If not configured, the default value is 20 seconds.
-
-*   `discovery.ttl`
-
-    Specifies the ttl (time-to-live) in seconds which is used by the discovery
-    module to timeout a node if a valid heartbeat is not received within the
-    configured ttl value. If not configured, the default value is 60 seconds.
-
-*   `kv.cacertfile`
-
-    Specifies the path to a local file with PEM encoded CA certificates to trust
-
-*   `kv.certfile`
-
-    Specifies the path to a local file with a PEM encoded certificate.  This
-    certificate is used as the client cert for communication with the
-    Key/Value store.
-
-*   `kv.keyfile`
-
-    Specifies the path to a local file with a PEM encoded private key.  This
-    private key is used as the client key for communication with the
-    Key/Value store.
-
-*   `kv.path`
-
-    Specifies the path in the Key/Value store. If not configured, the default value is 'docker/nodes'.
-
-## Access authorization
+#### Access authorization
 
 Docker's access authorization can be extended by authorization plugins that your
 organization can purchase or build themselves. You can install one or more
@@ -914,7 +890,7 @@
 plugin](../../extend/plugins_authorization.md) section in the Docker extend section of this documentation.
 
 
-## Daemon user namespace options
+#### Daemon user namespace options
 
 The Linux kernel [user namespace support](http://man7.org/linux/man-pages/man7/user_namespaces.7.html) provides additional security by enabling
 a process, and therefore a container, to have a unique range of user and
@@ -947,7 +923,7 @@
 > pull`, `docker push`, and container startup as users expect with
 > user namespaces disabled.
 
-### Starting the daemon with user namespaces enabled
+##### Start the daemon with user namespaces enabled
 
 To enable user namespace support, start the daemon with the
 `--userns-remap` flag, which accepts values in the following formats:
@@ -994,7 +970,20 @@
 namespaces, the Security Options entry in the response will list "userns" as
 one of the enabled security features.
 
-### Detailed information on `subuid`/`subgid` ranges
+##### Behavior differences when user namespaces are enabled
+
+When you start the Docker daemon with `--userns-remap`, Docker segregates the graph directory
+where the images are stored by adding an extra directory with a name corresponding to the
+remapped UID and GID. For example, if the remapped UID and GID begin with `165536`, all
+images and containers running with that remap setting are located in `/var/lib/docker/165536.165536`
+instead of `/var/lib/docker/`.
+
+In addition, the files and directories within the new directory, which correspond to
+images and container layers, are also owned by the new UID and GID. To set the ownership
+correctly, you need to re-pull the images and restart the containers after starting the
+daemon with `--userns-remap`.
+
+##### Detailed information on `subuid`/`subgid` ranges
 
 Given potential advanced use of the subordinate ID ranges by power users, the
 following paragraphs define how the Docker daemon currently uses the range entries
@@ -1017,7 +1006,7 @@
 2. Map segments will be created from each range in increasing value with a length matching the length of each segment. Therefore the range segment with the lowest numeric starting value will be equal to the remapped root, and continue up through host uid/gid equal to the range segment length. As an example, if the lowest segment starts at ID 1000 and has a length of 100, then a map of 1000 -> 0 (the remapped root) up through 1100 -> 100 will be created from this segment. If the next segment starts at ID 10000, then the next map will start with mapping 10000 -> 101 up to the length of this second segment. This will continue until no more segments are found in the subordinate files for this user.
 3. If more than five range segments exist for a single user, only the first five will be utilized, matching the kernel's limitation of only five entries in `/proc/self/uid_map` and `proc/self/gid_map`.
 
-### Disable user namespace for a container
+##### Disable user namespace for a container
 
 If you enable user namespaces on the daemon, all containers are started
 with user namespaces enabled. In some situations you might want to disable
@@ -1027,7 +1016,7 @@
 in the `run/exec/create` command.
 This option will completely disable user namespace mapping for the container's user.
 
-### User namespace known restrictions
+##### User namespace known restrictions
 
 The following standard Docker features are currently incompatible when
 running a Docker daemon with user namespaces enabled:
@@ -1050,7 +1039,7 @@
 inability to use `mknod`. Permission will be denied for device creation even as
 container `root` inside a user namespace.
 
-## Miscellaneous options
+### Miscellaneous options
 
 IP masquerading uses address translation to allow containers without a public
 IP to talk to other machines on the Internet. This may interfere with some
@@ -1065,7 +1054,7 @@
     export DOCKER_TMPDIR=/mnt/disk2/tmp
     /usr/local/bin/dockerd -D -g /var/lib/docker -H unix:// > /var/lib/docker-machine/docker.log 2>&1
 
-## Default cgroup parent
+#### Default cgroup parent
 
 The `--cgroup-parent` option allows you to set the default cgroup parent
 to use for containers. If this option is not set, it defaults to `/docker` for
@@ -1092,7 +1081,7 @@
 option on `docker create` and `docker run`, and takes precedence over
 the `--cgroup-parent` option on the daemon.
 
-## Daemon Metrics
+#### Daemon metrics
 
 The `--metrics-addr` option takes a tcp address to serve the metrics API.
 This feature is still experimental, therefore, the daemon must be running in experimental
@@ -1106,7 +1095,7 @@
 to have prometheus collect metrics on Docker.  For more information
 on prometheus you can view the website [here](https://prometheus.io/).
 
-```yml
+```none
 scrape_configs:
   - job_name: 'docker'
     static_configs:
@@ -1117,7 +1106,7 @@
 names could change while this feature is still in experimental.  Please provide
 feedback on what you would like to see collected in the API.
 
-## Daemon configuration file
+#### Daemon configuration file
 
 The `--config-file` option allows you to set any configuration option
 for the daemon in a JSON format. This file uses the same flag names as keys,
@@ -1132,7 +1121,7 @@
 in the configuration file and also set daemon labels via the `--label` flag.
 Options that are not present in the file are ignored when the daemon starts.
 
-### Linux configuration file
+##### On Linux
 
 The default location of the configuration file on Linux is
 `/etc/docker/daemon.json`. The `--config-file` flag can be used to specify a
@@ -1216,7 +1205,7 @@
 }
 ```
 
-### Windows configuration file
+##### On Windows
 
 The default location of the configuration file on Windows is
  `%programdata%\docker\config\daemon.json`. The `--config-file` flag can be
@@ -1263,7 +1252,7 @@
 }
 ```
 
-### Configuration reloading
+#### Configuration reload behavior
 
 Some options can be reconfigured when the daemon is running without requiring
 to restart the process. We use the `SIGHUP` signal in Linux to reload, and a global event
@@ -1299,7 +1288,7 @@
 previously configured cluster configurations.
 
 
-## Running multiple daemons
+### Run multiple daemons
 
 > **Note:** Running multiple daemons on a single host is considered as "experimental". The user should be aware of
 > unsolved problems. This solution may not work properly in some cases. Solutions are currently under development
@@ -1312,7 +1301,7 @@
 
 The following daemon options must be configured for each daemon:
 
-```bash
+```none
 -b, --bridge=                          Attach containers to a network bridge
 --exec-root=/var/run/docker            Root of the Docker execdriver
 -g, --graph=/var/lib/docker            Root of the Docker runtime
diff --git a/docs/reference/commandline/events.md b/docs/reference/commandline/events.md
index 71f07fc..9bf0513 100644
--- a/docs/reference/commandline/events.md
+++ b/docs/reference/commandline/events.md
@@ -28,29 +28,90 @@
       --until string   Stream events until this timestamp
 ```
 
+## Description
+
+Use `docker events` to get real-time events from the server. These events differ
+per Docker object type.
+
+### Object types
+
+#### Containers
+
 Docker containers report the following events:
 
-    attach, commit, copy, create, destroy, detach, die, exec_create, exec_detach, exec_start, export, health_status, kill, oom, pause, rename, resize, restart, start, stop, top, unpause, update
+- `attach`
+- `commit`
+- `copy`
+- `create`
+- `destroy`
+- `detach`
+- `die`
+- `exec_create`
+- `exec_detach`
+- `exec_start`
+- `export`
+- `health_status`
+- `kill`
+- `oom`
+- `pause`
+- `rename`
+- `resize`
+- `restart`
+- `start`
+- `stop`
+- `top`
+- `unpause`
+- `update`
+
+#### Images
 
 Docker images report the following events:
 
-    delete, import, load, pull, push, save, tag, untag
+- `delete`
+- `import`
+- `load`
+- `pull`
+- `push`
+- `save`
+- `tag`
+- `untag`
+
+#### Plugins
 
 Docker plugins report the following events:
 
-    install, enable, disable, remove
+- `install`
+- `enable`
+- `disable`
+- `remove`
+
+#### Volumes
 
 Docker volumes report the following events:
 
-    create, mount, unmount, destroy
+- `create`
+- `mount`
+- `unmount`
+- `destroy`
+
+#### Networks
 
 Docker networks report the following events:
 
-    create, connect, disconnect, destroy
+- `create`
+- `connect`
+- `disconnect`
+- `destroy`
 
-Docker daemon reports the following events:
+#### Daemons
 
-    reload
+Docker daemons report the following events:
+
+- `reload`
+
+### Limiting, filtering, and formatting the output
+
+#### Limit events by time
 
 The `--since` and `--until` parameters can be Unix timestamps, date formatted
 timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed
@@ -65,7 +126,7 @@
 seconds (aka Unix epoch or Unix time), and the optional .nanoseconds field is a
 fraction of a second no more than nine digits long.
 
-## Filtering
+#### Filtering
 
 The filtering flag (`-f` or `--filter`) format is of "key=value". If you would
 like to use multiple filters, pass multiple flags (e.g.,
@@ -91,7 +152,7 @@
 * type (`type=<container or image or volume or network or daemon>`)
 * volume (`volume=<name or id>`)
 
-## Format
+#### Format
 
 If a format (`--format`) is specified, the given template will be executed
 instead of the default
@@ -103,132 +164,186 @@
 
 ## Examples
 
+### Basic example
+
 You'll need two shells for this example.
 
 **Shell 1: Listening for events:**
 
-    $ docker events
+```bash
+$ docker events
+```
 
 **Shell 2: Start and Stop containers:**
 
-    $ docker create --name test alpine:latest top
-    $ docker start test
-    $ docker stop test
+```bash
+$ docker create --name test alpine:latest top
+$ docker start test
+$ docker stop test
+```
 
 **Shell 1: (Again .. now showing events):**
 
-    2017-01-05T00:35:58.859401177+08:00 container create 0fdb48addc82871eb34eb23a847cfd033dedd1a0a37bef2e6d9eb3870fc7ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:36:04.703631903+08:00 network connect e2e1f5ceda09d4300f3a846f0acfaa9a8bb0d89e775eb744c5acecd60e0529e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
-    2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
-    2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+```none
+2017-01-05T00:35:58.859401177+08:00 container create 0fdb48addc82871eb34eb23a847cfd033dedd1a0a37bef2e6d9eb3870fc7ff37 (image=alpine:latest, name=test)
+2017-01-05T00:36:04.703631903+08:00 network connect e2e1f5ceda09d4300f3a846f0acfaa9a8bb0d89e775eb744c5acecd60e0529e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
+2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
+2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+```
 
-**Show events in the past from a specified time:**
+To exit the `docker events` command, use `CTRL+C`.
 
-    $ docker events --since 1483283804
-    2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
-    2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
-    2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
-    2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
-    2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+### Filter events by time
 
-    $ docker events --since '2017-01-05'
-    2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
-    2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
-    2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
-    2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
-    2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+You can filter the output by an absolute timestamp or relative time on the host
+machine, using the following different time syntaxes:
 
-    $ docker events --since '2013-09-03T15:49:29'
-    2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
-    2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
-    2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
-    2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
-    2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+```bash
+$ docker events --since 1483283804
+2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
+2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
+2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
+2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
+2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
 
-This example outputs all events that were generated in the last 3 minutes,
-relative to the current time on the client machine:
+$ docker events --since '2017-01-05'
+2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
+2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
+2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
+2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
+2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
 
-    $ docker events --since '10m'
-    2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
-    2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
-    2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
-    2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
-    2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
-    2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+$ docker events --since '2013-09-03T15:49:29'
+2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
+2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
+2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
+2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
+2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
 
-**Filter events:**
+$ docker events --since '10m'
+2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
+2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
+2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
+2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
+2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
+2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+```
 
-    $ docker events --filter 'event=stop'
-    2017-01-05T00:40:22.880175420+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:41:17.888104182+08:00 container stop 2a8f...4e78 (image=alpine, name=kickass_brattain)
+### Filter events by criteria
 
-    $ docker events --filter 'image=alpine'
-    2017-01-05T00:41:55.784240236+08:00 container create d9cd...4d70 (image=alpine, name=happy_meitner)
-    2017-01-05T00:41:55.913156783+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
-    2017-01-05T00:42:01.106875249+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=15)
-    2017-01-05T00:42:11.111934041+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=9)
-    2017-01-05T00:42:11.119578204+08:00 container die d9cd...4d70 (exitCode=137, image=alpine, name=happy_meitner)
-    2017-01-05T00:42:11.173276611+08:00 container stop d9cd...4d70 (image=alpine, name=happy_meitner)
+The following commands show several different ways to filter the `docker event`
+output.
 
-    $ docker events --filter 'container=test'
-    2017-01-05T00:43:00.139719934+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:43:09.259951086+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
-    2017-01-05T00:43:09.270102715+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
-    2017-01-05T00:43:09.312556440+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+```bash
+$ docker events --filter 'event=stop'
 
-    $ docker events --filter 'container=test' --filter 'container=d9cdb1525ea8'
-    2017-01-05T00:44:11.517071981+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
-    2017-01-05T00:44:17.685870901+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
-    2017-01-05T00:44:29.757658470+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=9)
-    2017-01-05T00:44:29.767718510+08:00 container die 0fdb...ff37 (exitCode=137, image=alpine:latest, name=test)
-    2017-01-05T00:44:29.815798344+08:00 container destroy 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:40:22.880175420+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:41:17.888104182+08:00 container stop 2a8f...4e78 (image=alpine, name=kickass_brattain)
 
-    $ docker events --filter 'container=test' --filter 'event=stop'
-    2017-01-05T00:46:13.664099505+08:00 container stop a9d1...e130 (image=alpine, name=test)
+$ docker events --filter 'image=alpine'
 
-    $ docker events --filter 'type=volume'
-    2015-12-23T21:05:28.136212689Z volume create test-event-volume-local (driver=local)
-    2015-12-23T21:05:28.383462717Z volume mount test-event-volume-local (read/write=true, container=562f...5025, destination=/foo, driver=local, propagation=rprivate)
-    2015-12-23T21:05:28.650314265Z volume unmount test-event-volume-local (container=562f...5025, driver=local)
-    2015-12-23T21:05:28.716218405Z volume destroy test-event-volume-local (driver=local)
+2017-01-05T00:41:55.784240236+08:00 container create d9cd...4d70 (image=alpine, name=happy_meitner)
+2017-01-05T00:41:55.913156783+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
+2017-01-05T00:42:01.106875249+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=15)
+2017-01-05T00:42:11.111934041+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=9)
+2017-01-05T00:42:11.119578204+08:00 container die d9cd...4d70 (exitCode=137, image=alpine, name=happy_meitner)
+2017-01-05T00:42:11.173276611+08:00 container stop d9cd...4d70 (image=alpine, name=happy_meitner)
 
-    $ docker events --filter 'type=network'
-    2015-12-23T21:38:24.705709133Z network create 8b11...2c5b (name=test-event-network-local, type=bridge)
-    2015-12-23T21:38:25.119625123Z network connect 8b11...2c5b (name=test-event-network-local, container=b4be...c54e, type=bridge)
+$ docker events --filter 'container=test'
 
-    $ docker events --filter 'type=plugin' (experimental)
-    2016-07-25T17:30:14.825557616Z plugin pull ec7b...993f (name=tiborvass/sample-volume-plugin:latest)
-    2016-07-25T17:30:14.888127370Z plugin enable ec7b...993f (name=tiborvass/sample-volume-plugin:latest)
+2017-01-05T00:43:00.139719934+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:43:09.259951086+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
+2017-01-05T00:43:09.270102715+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
+2017-01-05T00:43:09.312556440+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
 
-**Format:**
+$ docker events --filter 'container=test' --filter 'container=d9cdb1525ea8'
 
-    $ docker events --filter 'type=container' --format 'Type={{.Type}}  Status={{.Status}}  ID={{.ID}}'
-    Type=container  Status=create  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
-    Type=container  Status=attach  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
-    Type=container  Status=start  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
-    Type=container  Status=resize  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
-    Type=container  Status=die  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
-    Type=container  Status=destroy  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
+2017-01-05T00:44:11.517071981+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
+2017-01-05T00:44:17.685870901+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
+2017-01-05T00:44:29.757658470+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=9)
+2017-01-05T00:44:29.767718510+08:00 container die 0fdb...ff37 (exitCode=137, image=alpine:latest, name=test)
+2017-01-05T00:44:29.815798344+08:00 container destroy 0fdb...ff37 (image=alpine:latest, name=test)
 
-**Format (as JSON Lines):**
+$ docker events --filter 'container=test' --filter 'event=stop'
 
+2017-01-05T00:46:13.664099505+08:00 container stop a9d1...e130 (image=alpine, name=test)
+
+$ docker events --filter 'type=volume'
+
+2015-12-23T21:05:28.136212689Z volume create test-event-volume-local (driver=local)
+2015-12-23T21:05:28.383462717Z volume mount test-event-volume-local (read/write=true, container=562f...5025, destination=/foo, driver=local, propagation=rprivate)
+2015-12-23T21:05:28.650314265Z volume unmount test-event-volume-local (container=562f...5025, driver=local)
+2015-12-23T21:05:28.716218405Z volume destroy test-event-volume-local (driver=local)
+
+$ docker events --filter 'type=network'
+
+2015-12-23T21:38:24.705709133Z network create 8b11...2c5b (name=test-event-network-local, type=bridge)
+2015-12-23T21:38:25.119625123Z network connect 8b11...2c5b (name=test-event-network-local, container=b4be...c54e, type=bridge)
+
+$ docker events --filter 'container=container_1' --filter 'container=container_2'
+
+2014-09-03T15:49:29.999999999Z07:00 container die 4386fb97867d (image=ubuntu-1:14.04)
+2014-05-10T17:42:14.999999999Z07:00 container stop 4386fb97867d (image=ubuntu-1:14.04)
+2014-05-10T17:42:14.999999999Z07:00 container die 7805c1d35632 (imager=redis:2.8)
+2014-09-03T15:49:29.999999999Z07:00 container stop 7805c1d35632 (image=redis:2.8)
+
+$ docker events --filter 'type=volume'
+
+2015-12-23T21:05:28.136212689Z volume create test-event-volume-local (driver=local)
+2015-12-23T21:05:28.383462717Z volume mount test-event-volume-local (read/write=true, container=562fe10671e9273da25eed36cdce26159085ac7ee6707105fd534866340a5025, destination=/foo, driver=local, propagation=rprivate)
+2015-12-23T21:05:28.650314265Z volume unmount test-event-volume-local (container=562fe10671e9273da25eed36cdce26159085ac7ee6707105fd534866340a5025, driver=local)
+2015-12-23T21:05:28.716218405Z volume destroy test-event-volume-local (driver=local)
+
+$ docker events --filter 'type=network'
+
+2015-12-23T21:38:24.705709133Z network create 8b111217944ba0ba844a65b13efcd57dc494932ee2527577758f939315ba2c5b (name=test-event-network-local, type=bridge)
+2015-12-23T21:38:25.119625123Z network connect 8b111217944ba0ba844a65b13efcd57dc494932ee2527577758f939315ba2c5b (name=test-event-network-local, container=b4be644031a3d90b400f88ab3d4bdf4dc23adb250e696b6328b85441abe2c54e, type=bridge)
+```
+
+The `type=plugin` filter is experimental.
+
+```bash
+$ docker events --filter 'type=plugin'
+
+2016-07-25T17:30:14.825557616Z plugin pull ec7b87f2ce84330fe076e666f17dfc049d2d7ae0b8190763de94e1f2d105993f (name=tiborvass/sample-volume-plugin:latest)
+2016-07-25T17:30:14.888127370Z plugin enable ec7b87f2ce84330fe076e666f17dfc049d2d7ae0b8190763de94e1f2d105993f (name=tiborvass/sample-volume-plugin:latest)
+```
+
+### Format the output
+
+```bash
+$ docker events --filter 'type=container' --format 'Type={{.Type}}  Status={{.Status}}  ID={{.ID}}'
+
+Type=container  Status=create  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
+Type=container  Status=attach  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
+Type=container  Status=start  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
+Type=container  Status=resize  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
+Type=container  Status=die  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
+Type=container  Status=destroy  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
+```
+
+#### Format as JSON
+
+```none
     $ docker events --format '{{json .}}'
+
     {"status":"create","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..
     {"status":"attach","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..
     {"Type":"network","Action":"connect","Actor":{"ID":"1b50a5bf755f6021dfa78e..
     {"status":"start","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f42..
     {"status":"resize","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..
+```
diff --git a/docs/reference/commandline/exec.md b/docs/reference/commandline/exec.md
index 38891c9..1ae46cf 100644
--- a/docs/reference/commandline/exec.md
+++ b/docs/reference/commandline/exec.md
@@ -31,35 +31,61 @@
   -u, --user           Username or UID (format: <name|uid>[:<group|gid>])
 ```
 
+## Description
+
 The `docker exec` command runs a new command in a running container.
 
 The command started using `docker exec` only runs while the container's primary
 process (`PID 1`) is running, and it is not restarted if the container is
 restarted.
 
-If the container is paused, then the `docker exec` command will fail with an error:
-
-    $ docker pause test
-    test
-    $ docker ps
-    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
-    1ae3b36715d2        ubuntu:latest       "bash"              17 seconds ago      Up 16 seconds (Paused)                       test
-    $ docker exec test ls
-    FATA[0000] Error response from daemon: Container test is paused, unpause the container before exec
-    $ echo $?
-    1
-
 ## Examples
 
-    $ docker run --name ubuntu_bash --rm -i -t ubuntu bash
+### Run `docker exec` on a running container
+
+First, start a container.
+
+```bash
+$ docker run --name ubuntu_bash --rm -i -t ubuntu bash
+```
 
 This will create a container named `ubuntu_bash` and start a Bash session.
 
-    $ docker exec -d ubuntu_bash touch /tmp/execWorks
+Next, execute a command on the container.
+
+```bash
+$ docker exec -d ubuntu_bash touch /tmp/execWorks
+```
 
 This will create a new file `/tmp/execWorks` inside the running container
 `ubuntu_bash`, in the background.
 
-    $ docker exec -it ubuntu_bash bash
+Next, execute an interactive `bash` shell on the container.
+
+```bash
+$ docker exec -it ubuntu_bash bash
+```
 
 This will create a new Bash session in the container `ubuntu_bash`.
+
+### Try to run `docker exec` on a paused container
+
+If the container is paused, then the `docker exec` command will fail with an error:
+
+```bash
+$ docker pause test
+
+test
+
+$ docker ps
+
+CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
+1ae3b36715d2        ubuntu:latest       "bash"              17 seconds ago      Up 16 seconds (Paused)                       test
+
+$ docker exec test ls
+
+FATA[0000] Error response from daemon: Container test is paused, unpause the container before exec
+
+$ echo $?
+1
+```
diff --git a/docs/reference/commandline/export.md b/docs/reference/commandline/export.md
index 1004fc3..9de5097 100644
--- a/docs/reference/commandline/export.md
+++ b/docs/reference/commandline/export.md
@@ -25,19 +25,24 @@
   -o, --output string   Write to a file, instead of STDOUT
 ```
 
+## Description
+
 The `docker export` command does not export the contents of volumes associated
 with the container. If a volume is mounted on top of an existing directory in
 the container, `docker export` will export the contents of the *underlying*
 directory, not the contents of the volume.
 
-Refer to [Backup, restore, or migrate data
-volumes](https://docs.docker.com/engine/tutorials/dockervolumes/#backup-restore-or-migrate-data-volumes) in
-the user guide for examples on exporting data in a volume.
+Refer to [Backup, restore, or migrate data volumes](https://docs.docker.com/engine/tutorials/dockervolumes/#backup-restore-or-migrate-data-volumes)
+in the user guide for examples on exporting data in a volume.
 
 ## Examples
 
-    $ docker export red_panda > latest.tar
+Each of these commands has the same result.
 
-Or
+```bash
+$ docker export red_panda > latest.tar
+```
 
-    $ docker export --output="latest.tar" red_panda
+```bash
+$ docker export --output="latest.tar" red_panda
+```
diff --git a/docs/reference/commandline/history.md b/docs/reference/commandline/history.md
index 00f88db..b68cc86 100644
--- a/docs/reference/commandline/history.md
+++ b/docs/reference/commandline/history.md
@@ -27,22 +27,30 @@
   -q, --quiet      Only show numeric IDs
 ```
 
+
+## Examples
+
 To see how the `docker:latest` image was built:
 
-    $ docker history docker
-    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
-    3e23a5875458        8 days ago          /bin/sh -c #(nop) ENV LC_ALL=C.UTF-8            0 B
-    8578938dd170        8 days ago          /bin/sh -c dpkg-reconfigure locales &&    loc   1.245 MB
-    be51b77efb42        8 days ago          /bin/sh -c apt-get update && apt-get install    338.3 MB
-    4b137612be55        6 weeks ago         /bin/sh -c #(nop) ADD jessie.tar.xz in /        121 MB
-    750d58736b4b        6 weeks ago         /bin/sh -c #(nop) MAINTAINER Tianon Gravi <ad   0 B
-    511136ea3c5a        9 months ago                                                        0 B                 Imported from -
+```bash
+$ docker history docker
+
+IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
+3e23a5875458        8 days ago          /bin/sh -c #(nop) ENV LC_ALL=C.UTF-8            0 B
+8578938dd170        8 days ago          /bin/sh -c dpkg-reconfigure locales &&    loc   1.245 MB
+be51b77efb42        8 days ago          /bin/sh -c apt-get update && apt-get install    338.3 MB
+4b137612be55        6 weeks ago         /bin/sh -c #(nop) ADD jessie.tar.xz in /        121 MB
+750d58736b4b        6 weeks ago         /bin/sh -c #(nop) MAINTAINER Tianon Gravi <ad   0 B
+511136ea3c5a        9 months ago                                                        0 B                 Imported from -
+```
 
 To see how the `docker:apache` image was added to a container's base image:
 
-    $ docker history docker:scm
-    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
-    2ac9d1098bf1        3 months ago        /bin/bash                                       241.4 MB            Added Apache to Fedora base image
-    88b42ffd1f7c        5 months ago        /bin/sh -c #(nop) ADD file:1fd8d7f9f6557cafc7   373.7 MB
-    c69cab00d6ef        5 months ago        /bin/sh -c #(nop) MAINTAINER Lokesh Mandvekar   0 B
-    511136ea3c5a        19 months ago                                                       0 B                 Imported from -
+```bash
+$ docker history docker:scm
+IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
+2ac9d1098bf1        3 months ago        /bin/bash                                       241.4 MB            Added Apache to Fedora base image
+88b42ffd1f7c        5 months ago        /bin/sh -c #(nop) ADD file:1fd8d7f9f6557cafc7   373.7 MB
+c69cab00d6ef        5 months ago        /bin/sh -c #(nop) MAINTAINER Lokesh Mandvekar   0 B
+511136ea3c5a        19 months ago                                                       0 B                 Imported from -
+```
diff --git a/docs/reference/commandline/image_prune.md b/docs/reference/commandline/image_prune.md
index a80b8d3..6e1fd26 100644
--- a/docs/reference/commandline/image_prune.md
+++ b/docs/reference/commandline/image_prune.md
@@ -26,12 +26,17 @@
       --help    Print usage
 ```
 
+## Description
+
 Remove all dangling images. If `-a` is specified, will also remove all images not referenced by any container.
 
+## Examples
+
 Example output:
 
 ```bash
 $ docker image prune -a
+
 WARNING! This will remove all images without at least one container associated to them.
 Are you sure you want to continue? [y/N] y
 Deleted Images:
@@ -62,7 +67,7 @@
 Total reclaimed space: 16.43 MB
 ```
 
-## Related information
+## Related commands
 
 * [system df](system_df.md)
 * [container prune](container_prune.md)
diff --git a/docs/reference/commandline/images.md b/docs/reference/commandline/images.md
index 3b9ea1f..82c572e 100644
--- a/docs/reference/commandline/images.md
+++ b/docs/reference/commandline/images.md
@@ -35,6 +35,8 @@
   -q, --quiet           Only show numeric IDs
 ```
 
+## Description
+
 The default `docker images` will show all top level
 images, their repository and tags, and their size.
 
@@ -51,21 +53,26 @@
 or tags. This single image (identifiable by its matching `IMAGE ID`)
 uses up the `SIZE` listed only once.
 
-### Listing the most recently created images
+## Examples
 
-    $ docker images
-    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
-    <none>                    <none>              77af4d6b9913        19 hours ago        1.089 GB
-    committ                   latest              b6fa739cedf5        19 hours ago        1.089 GB
-    <none>                    <none>              78a85c484f71        19 hours ago        1.089 GB
-    docker                    latest              30557a29d5ab        20 hours ago        1.089 GB
-    <none>                    <none>              5ed6274db6ce        24 hours ago        1.089 GB
-    postgres                  9                   746b819f315e        4 days ago          213.4 MB
-    postgres                  9.3                 746b819f315e        4 days ago          213.4 MB
-    postgres                  9.3.5               746b819f315e        4 days ago          213.4 MB
-    postgres                  latest              746b819f315e        4 days ago          213.4 MB
+### List the most recently created images
 
-### Listing images by name and tag
+```bash
+$ docker images
+
+REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
+<none>                    <none>              77af4d6b9913        19 hours ago        1.089 GB
+committ                   latest              b6fa739cedf5        19 hours ago        1.089 GB
+<none>                    <none>              78a85c484f71        19 hours ago        1.089 GB
+docker                    latest              30557a29d5ab        20 hours ago        1.089 GB
+<none>                    <none>              5ed6274db6ce        24 hours ago        1.089 GB
+postgres                  9                   746b819f315e        4 days ago          213.4 MB
+postgres                  9.3                 746b819f315e        4 days ago          213.4 MB
+postgres                  9.3.5               746b819f315e        4 days ago          213.4 MB
+postgres                  latest              746b819f315e        4 days ago          213.4 MB
+```
+
+### List images by name and tag
 
 The `docker images` command takes an optional `[REPOSITORY[:TAG]]` argument
 that restricts the list to images that match the argument. If you specify
@@ -74,11 +81,14 @@
 
 For example, to list all images in the "java" repository, run this command :
 
-    $ docker images java
-    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
-    java                8                   308e519aac60        6 days ago          824.5 MB
-    java                7                   493d82594c15        3 months ago        656.3 MB
-    java                latest              2711b1d6f3aa        5 months ago        603.9 MB
+```bash
+$ docker images java
+
+REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
+java                8                   308e519aac60        6 days ago          824.5 MB
+java                7                   493d82594c15        3 months ago        656.3 MB
+java                latest              2711b1d6f3aa        5 months ago        603.9 MB
+```
 
 The `[REPOSITORY[:TAG]]` value must be an "exact match". This means that, for example,
 `docker images jav` does not match the image `java`.
@@ -87,46 +97,57 @@
 repository and tag are listed.  To find all local images in the "java"
 repository with tag "8" you can use:
 
-    $ docker images java:8
-    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
-    java                8                   308e519aac60        6 days ago          824.5 MB
+```bash
+$ docker images java:8
+
+REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
+java                8                   308e519aac60        6 days ago          824.5 MB
+```
 
 If nothing matches `REPOSITORY[:TAG]`, the list is empty.
 
-    $ docker images java:0
-    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
+```bash
+$ docker images java:0
 
-## Listing the full length image IDs
+REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
+```
 
-    $ docker images --no-trunc
-    REPOSITORY                    TAG                 IMAGE ID                                                                  CREATED             SIZE
-    <none>                        <none>              sha256:77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182   19 hours ago        1.089 GB
-    committest                    latest              sha256:b6fa739cedf5ea12a620a439402b6004d057da800f91c7524b5086a5e4749c9f   19 hours ago        1.089 GB
-    <none>                        <none>              sha256:78a85c484f71509adeaace20e72e941f6bdd2b25b4c75da8693efd9f61a37921   19 hours ago        1.089 GB
-    docker                        latest              sha256:30557a29d5abc51e5f1d5b472e79b7e296f595abcf19fe6b9199dbbc809c6ff4   20 hours ago        1.089 GB
-    <none>                        <none>              sha256:0124422dd9f9cf7ef15c0617cda3931ee68346455441d66ab8bdc5b05e9fdce5   20 hours ago        1.089 GB
-    <none>                        <none>              sha256:18ad6fad340262ac2a636efd98a6d1f0ea775ae3d45240d3418466495a19a81b   22 hours ago        1.082 GB
-    <none>                        <none>              sha256:f9f1e26352f0a3ba6a0ff68167559f64f3e21ff7ada60366e2d44a04befd1d3a   23 hours ago        1.089 GB
-    tryout                        latest              sha256:2629d1fa0b81b222fca63371ca16cbf6a0772d07759ff80e8d1369b926940074   23 hours ago        131.5 MB
-    <none>                        <none>              sha256:5ed6274db6ceb2397844896966ea239290555e74ef307030ebb01ff91b1914df   24 hours ago        1.089 GB
+### List the full length image IDs
 
-## Listing image digests
+```bash
+$ docker images --no-trunc
+
+REPOSITORY                    TAG                 IMAGE ID                                                                  CREATED             SIZE
+<none>                        <none>              sha256:77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182   19 hours ago        1.089 GB
+committest                    latest              sha256:b6fa739cedf5ea12a620a439402b6004d057da800f91c7524b5086a5e4749c9f   19 hours ago        1.089 GB
+<none>                        <none>              sha256:78a85c484f71509adeaace20e72e941f6bdd2b25b4c75da8693efd9f61a37921   19 hours ago        1.089 GB
+docker                        latest              sha256:30557a29d5abc51e5f1d5b472e79b7e296f595abcf19fe6b9199dbbc809c6ff4   20 hours ago        1.089 GB
+<none>                        <none>              sha256:0124422dd9f9cf7ef15c0617cda3931ee68346455441d66ab8bdc5b05e9fdce5   20 hours ago        1.089 GB
+<none>                        <none>              sha256:18ad6fad340262ac2a636efd98a6d1f0ea775ae3d45240d3418466495a19a81b   22 hours ago        1.082 GB
+<none>                        <none>              sha256:f9f1e26352f0a3ba6a0ff68167559f64f3e21ff7ada60366e2d44a04befd1d3a   23 hours ago        1.089 GB
+tryout                        latest              sha256:2629d1fa0b81b222fca63371ca16cbf6a0772d07759ff80e8d1369b926940074   23 hours ago        131.5 MB
+<none>                        <none>              sha256:5ed6274db6ceb2397844896966ea239290555e74ef307030ebb01ff91b1914df   24 hours ago        1.089 GB
+```
+
+### List image digests
 
 Images that use the v2 or later format have a content-addressable identifier
 called a `digest`. As long as the input used to generate the image is
 unchanged, the digest value is predictable. To list image digest values, use
 the `--digests` flag:
 
-    $ docker images --digests
-    REPOSITORY                         TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
-    localhost:5000/test/busybox        <none>              sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf   4986bf8c1536        9 weeks ago         2.43 MB
+```bash
+$ docker images --digests
+REPOSITORY                         TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
+localhost:5000/test/busybox        <none>              sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf   4986bf8c1536        9 weeks ago         2.43 MB
+```
 
 When pushing or pulling to a 2.0 registry, the `push` or `pull` command
 output includes the image digest. You can `pull` using a digest value. You can
 also reference by digest in `create`, `run`, and `rmi` commands, as well as the
 `FROM` image reference in a Dockerfile.
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
 than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@@ -138,133 +159,147 @@
 * before (`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`) - filter images created before given id or references
 * since (`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`) - filter images created since given id or references
 
-##### Untagged images (dangling)
+#### Show untagged images (dangling)
 
-    $ docker images --filter "dangling=true"
+```bash
+$ docker images --filter "dangling=true"
 
-    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
-    <none>              <none>              8abc22fbb042        4 weeks ago         0 B
-    <none>              <none>              48e5f45168b9        4 weeks ago         2.489 MB
-    <none>              <none>              bf747efa0e2f        4 weeks ago         0 B
-    <none>              <none>              980fe10e5736        12 weeks ago        101.4 MB
-    <none>              <none>              dea752e4e117        12 weeks ago        101.4 MB
-    <none>              <none>              511136ea3c5a        8 months ago        0 B
+REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
+<none>              <none>              8abc22fbb042        4 weeks ago         0 B
+<none>              <none>              48e5f45168b9        4 weeks ago         2.489 MB
+<none>              <none>              bf747efa0e2f        4 weeks ago         0 B
+<none>              <none>              980fe10e5736        12 weeks ago        101.4 MB
+<none>              <none>              dea752e4e117        12 weeks ago        101.4 MB
+<none>              <none>              511136ea3c5a        8 months ago        0 B
+```
 
-This will display untagged images, that are the leaves of the images tree (not
+This will display untagged images that are the leaves of the images tree (not
 intermediary layers). These images occur when a new build of an image takes the
 `repo:tag` away from the image ID, leaving it as `<none>:<none>` or untagged.
 A warning will be issued if trying to remove an image when a container is presently
 using it. By having this flag it allows for batch cleanup.
 
-Ready for use by `docker rmi ...`, like:
+You can use this in conjunction with `docker rmi ...`:
 
-    $ docker rmi $(docker images -f "dangling=true" -q)
+```bash
+$ docker rmi $(docker images -f "dangling=true" -q)
 
-    8abc22fbb042
-    48e5f45168b9
-    bf747efa0e2f
-    980fe10e5736
-    dea752e4e117
-    511136ea3c5a
+8abc22fbb042
+48e5f45168b9
+bf747efa0e2f
+980fe10e5736
+dea752e4e117
+511136ea3c5a
+```
 
-NOTE: Docker will warn you if any containers exist that are using these untagged images.
+> **Note**: Docker warns you if any containers exist that are using these
+> untagged images.
 
 
-##### Labeled images
+#### Show images with a given label
 
 The `label` filter matches images based on the presence of a `label` alone or a `label` and a
 value.
 
 The following filter matches images with the `com.example.version` label regardless of its value.
 
-    $ docker images --filter "label=com.example.version"
+```bash
+$ docker images --filter "label=com.example.version"
 
-    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
-    match-me-1          latest              eeae25ada2aa        About a minute ago   188.3 MB
-    match-me-2          latest              dea752e4e117        About a minute ago   188.3 MB
+REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
+match-me-1          latest              eeae25ada2aa        About a minute ago   188.3 MB
+match-me-2          latest              dea752e4e117        About a minute ago   188.3 MB
+```
 
 The following filter matches images with the `com.example.version` label with the `1.0` value.
 
-    $ docker images --filter "label=com.example.version=1.0"
-    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
-    match-me            latest              511136ea3c5a        About a minute ago   188.3 MB
+```bash
+$ docker images --filter "label=com.example.version=1.0"
+
+REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
+match-me            latest              511136ea3c5a        About a minute ago   188.3 MB
+```
 
 In this example, with the `0.1` value, it returns an empty set because no matches were found.
 
-    $ docker images --filter "label=com.example.version=0.1"
-    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
+```bash
+$ docker images --filter "label=com.example.version=0.1"
+REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
+```
 
-#### Before
+#### Filter images by time
 
 The `before` filter shows only images created before the image with
 given id or reference. For example, having these images:
 
-    $ docker images
-    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
-    image1              latest              eeae25ada2aa        4 minutes ago        188.3 MB
-    image2              latest              dea752e4e117        9 minutes ago        188.3 MB
-    image3              latest              511136ea3c5a        25 minutes ago       188.3 MB
+```bash
+$ docker images
+
+REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
+image1              latest              eeae25ada2aa        4 minutes ago        188.3 MB
+image2              latest              dea752e4e117        9 minutes ago        188.3 MB
+image3              latest              511136ea3c5a        25 minutes ago       188.3 MB
+```
 
 Filtering with `before` would give:
 
-    $ docker images --filter "before=image1"
-    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
-    image2              latest              dea752e4e117        9 minutes ago        188.3 MB
-    image3              latest              511136ea3c5a        25 minutes ago       188.3 MB
+```bash
+$ docker images --filter "before=image1"
 
-#### Since
-
-The `since` filter shows only images created after the image with
-given id or reference. For example, having these images:
-
-    $ docker images
-    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
-    image1              latest              eeae25ada2aa        4 minutes ago        188.3 MB
-    image2              latest              dea752e4e117        9 minutes ago        188.3 MB
-    image3              latest              511136ea3c5a        25 minutes ago       188.3 MB
+REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
+image2              latest              dea752e4e117        9 minutes ago        188.3 MB
+image3              latest              511136ea3c5a        25 minutes ago       188.3 MB
+```
 
 Filtering with `since` would give:
 
-    $ docker images --filter "since=image3"
-    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
-    image1              latest              eeae25ada2aa        4 minutes ago        188.3 MB
-    image2              latest              dea752e4e117        9 minutes ago        188.3 MB
+```bash
+$ docker images --filter "since=image3"
+REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
+image1              latest              eeae25ada2aa        4 minutes ago        188.3 MB
+image2              latest              dea752e4e117        9 minutes ago        188.3 MB
+```
 
-#### Reference
+#### Filter images by reference
 
 The `reference` filter shows only images whose reference matches
 the specified pattern.
 
+```bash
     $ docker images
+
     REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
     busybox             latest              e02e811dd08f        5 weeks ago         1.09 MB
     busybox             uclibc              e02e811dd08f        5 weeks ago         1.09 MB
     busybox             musl                733eb3059dce        5 weeks ago         1.21 MB
     busybox             glibc               21c16b6787c6        5 weeks ago         4.19 MB
+```
 
 Filtering with `reference` would give:
 
+```bash
     $ docker images --filter=reference='busy*:*libc'
     REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
     busybox             uclibc              e02e811dd08f        5 weeks ago         1.09 MB
     busybox             glibc               21c16b6787c6        5 weeks ago         4.19 MB
+```
 
-## Formatting
+### Format the output
 
 The formatting option (`--format`) will pretty print container output
 using a Go template.
 
 Valid placeholders for the Go template are listed below:
 
-Placeholder | Description
----- | ----
-`.ID` | Image ID
-`.Repository` | Image repository
-`.Tag` | Image tag
-`.Digest` | Image digest
-`.CreatedSince` | Elapsed time since the image was created
-`.CreatedAt` | Time when the image was created
-`.Size` | Image disk size
+| Placeholder | Description|
+| ---- | ---- |
+| `.ID` | Image ID |
+| `.Repository` | Image repository |
+| `.Tag` | Image tag |
+| `.Digest` | Image digest |
+| `.CreatedSince` | Elapsed time since the image was created |
+| `.CreatedAt` | Time when the image was created |
+| `.Size` | Image disk size |
 
 When using the `--format` option, the `image` command will either
 output the data exactly as the template declares or, when using the
@@ -273,32 +308,34 @@
 The following example uses a template without headers and outputs the
 `ID` and `Repository` entries separated by a colon for all images:
 
-    {% raw %}
-    $ docker images --format "{{.ID}}: {{.Repository}}"
-    77af4d6b9913: <none>
-    b6fa739cedf5: committ
-    78a85c484f71: <none>
-    30557a29d5ab: docker
-    5ed6274db6ce: <none>
-    746b819f315e: postgres
-    746b819f315e: postgres
-    746b819f315e: postgres
-    746b819f315e: postgres
-    {% endraw %}
+```bash
+$ docker images --format "{{.ID}}: {{.Repository}}"
+
+77af4d6b9913: <none>
+b6fa739cedf5: committ
+78a85c484f71: <none>
+30557a29d5ab: docker
+5ed6274db6ce: <none>
+746b819f315e: postgres
+746b819f315e: postgres
+746b819f315e: postgres
+746b819f315e: postgres
+```
 
 To list all images with their repository and tag in a table format you
 can use:
 
-    {% raw %}
-    $ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
-    IMAGE ID            REPOSITORY                TAG
-    77af4d6b9913        <none>                    <none>
-    b6fa739cedf5        committ                   latest
-    78a85c484f71        <none>                    <none>
-    30557a29d5ab        docker                    latest
-    5ed6274db6ce        <none>                    <none>
-    746b819f315e        postgres                  9
-    746b819f315e        postgres                  9.3
-    746b819f315e        postgres                  9.3.5
-    746b819f315e        postgres                  latest
-    {% endraw %}
+```bash
+$ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
+
+IMAGE ID            REPOSITORY                TAG
+77af4d6b9913        <none>                    <none>
+b6fa739cedf5        committ                   latest
+78a85c484f71        <none>                    <none>
+30557a29d5ab        docker                    latest
+5ed6274db6ce        <none>                    <none>
+746b819f315e        postgres                  9
+746b819f315e        postgres                  9.3
+746b819f315e        postgres                  9.3.5
+746b819f315e        postgres                  latest
+```
diff --git a/docs/reference/commandline/import.md b/docs/reference/commandline/import.md
index 20e90a6..57edf65 100644
--- a/docs/reference/commandline/import.md
+++ b/docs/reference/commandline/import.md
@@ -26,6 +26,8 @@
   -m, --message string   Set commit message for imported image
 ```
 
+## Description
+
 You can specify a `URL` or `-` (dash) to take data directly from `STDIN`. The
 `URL` can point to an archive (.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz)
 containing a filesystem or to an individual file on the Docker host.  If you
@@ -41,33 +43,45 @@
 
 ## Examples
 
-**Import from a remote location:**
+### Import from a remote location
 
 This will create a new untagged image.
 
-    $ docker import http://example.com/exampleimage.tgz
+```bash
+$ docker import http://example.com/exampleimage.tgz
+```
 
-**Import from a local file:**
+### Import from a local file
 
-Import to docker via pipe and `STDIN`.
+- Import to docker via pipe and `STDIN`.
 
-    $ cat exampleimage.tgz | docker import - exampleimagelocal:new
+  ```bash
+  $ cat exampleimage.tgz | docker import - exampleimagelocal:new
+  ```
 
-Import with a commit message.
+- Import with a commit message.
 
-    $ cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new
+  ```bash
+  $ cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new
+  ```
 
-Import to docker from a local archive.
+- Import to docker from a local archive.
 
+  ```bash
     $ docker import /path/to/exampleimage.tgz
+  ```
 
-**Import from a local directory:**
+### Import from a local directory
 
-    $ sudo tar -c . | docker import - exampleimagedir
+```bash
+$ sudo tar -c . | docker import - exampleimagedir
+```
 
-**Import from a local directory with new configurations:**
+### Import from a local directory with new configurations
 
-    $ sudo tar -c . | docker import --change "ENV DEBUG true" - exampleimagedir
+```bash
+$ sudo tar -c . | docker import --change "ENV DEBUG true" - exampleimagedir
+```
 
 Note the `sudo` in this example – you must preserve
 the ownership of the files (especially root ownership) during the
diff --git a/docs/reference/commandline/index.md b/docs/reference/commandline/index.md
index 952fa09..59c816e 100644
--- a/docs/reference/commandline/index.md
+++ b/docs/reference/commandline/index.md
@@ -25,6 +25,8 @@
 affects your Docker containers. For that reason you should also make sure to
 read the [`dockerd`](dockerd.md) reference page.
 
+## Commands by object
+
 ### Docker management commands
 
 | Command | Description                                                        |
@@ -122,7 +124,7 @@
 | [node ls](node_ls.md) | List nodes in the swarm                              |
 | [node rm](node_rm.md) | Remove one or more nodes from the swarm                         |
 
-### Swarm swarm commands
+### Swarm management commands
 
 | Command | Description                                                        |
 |:--------|:-------------------------------------------------------------------|
diff --git a/docs/reference/commandline/info.md b/docs/reference/commandline/info.md
index 50a084f..798c3f0 100644
--- a/docs/reference/commandline/info.md
+++ b/docs/reference/commandline/info.md
@@ -25,6 +25,8 @@
       --help            Print usage
 ```
 
+## Description
+
 This command displays system wide information regarding the Docker installation.
 Information displayed includes the kernel version, number of containers and images.
 The number of images shown is the number of unique images. The same image tagged
@@ -43,182 +45,200 @@
 allocates a certain amount of data space and meta data space from the space
 available on the volume where `/var/lib/docker` is mounted.
 
-# Examples
+## Examples
 
-## Display Docker system information
+### Show output
+
+The example below shows the output for a daemon running on Red Hat Enterprise Linux,
+using the `devicemapper` storage driver. As can be seen in the output, additional
+information about the `devicemapper` storage driver is shown:
+
+```bash
+$ docker info
+
+Containers: 14
+ Running: 3
+ Paused: 1
+ Stopped: 10
+Images: 52
+Server Version: 1.10.3
+Storage Driver: devicemapper
+ Pool Name: docker-202:2-25583803-pool
+ Pool Blocksize: 65.54 kB
+ Base Device Size: 10.74 GB
+ Backing Filesystem: xfs
+ Data file: /dev/loop0
+ Metadata file: /dev/loop1
+ Data Space Used: 1.68 GB
+ Data Space Total: 107.4 GB
+ Data Space Available: 7.548 GB
+ Metadata Space Used: 2.322 MB
+ Metadata Space Total: 2.147 GB
+ Metadata Space Available: 2.145 GB
+ Udev Sync Supported: true
+ Deferred Removal Enabled: false
+ Deferred Deletion Enabled: false
+ Deferred Deleted Device Count: 0
+ Data loop file: /var/lib/docker/devicemapper/devicemapper/data
+ Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
+ Library Version: 1.02.107-RHEL7 (2015-12-01)
+Execution Driver: native-0.2
+Logging Driver: json-file
+Plugins:
+ Volume: local
+ Network: null host bridge
+Kernel Version: 3.10.0-327.el7.x86_64
+Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
+OSType: linux
+Architecture: x86_64
+CPUs: 1
+Total Memory: 991.7 MiB
+Name: ip-172-30-0-91.ec2.internal
+ID: I54V:OLXT:HVMM:TPKO:JPHQ:CQCD:JNLC:O3BZ:4ZVJ:43XJ:PFHZ:6N2S
+Docker Root Dir: /var/lib/docker
+Debug mode (client): false
+Debug mode (server): false
+Username: gordontheturtle
+Registry: https://index.docker.io/v1/
+Insecure registries:
+ myinsecurehost:5000
+ 127.0.0.0/8
+```
+
+### Show debugging output
 
 Here is a sample output for a daemon running on Ubuntu, using the overlay2
 storage driver and a node that is part of a 2-node swarm:
 
-    $ docker -D info
-    Containers: 14
-     Running: 3
-     Paused: 1
-     Stopped: 10
-    Images: 52
-    Server Version: 1.13.0
-    Storage Driver: overlay2
-     Backing Filesystem: extfs
-     Supports d_type: true
-     Native Overlay Diff: false
-    Logging Driver: json-file
-    Cgroup Driver: cgroupfs
-    Plugins:
-     Volume: local
-     Network: bridge host macvlan null overlay
-    Swarm: active
-     NodeID: rdjq45w1op418waxlairloqbm
-     Is Manager: true
-     ClusterID: te8kdyw33n36fqiz74bfjeixd
-     Managers: 1
-     Nodes: 2
-     Orchestration:
-      Task History Retention Limit: 5
-     Raft:
-      Snapshot Interval: 10000
-      Number of Old Snapshots to Retain: 0
-      Heartbeat Tick: 1
-      Election Tick: 3
-     Dispatcher:
-      Heartbeat Period: 5 seconds
-     CA Configuration:
-      Expiry Duration: 3 months
-     Node Address: 172.16.66.128 172.16.66.129
-     Manager Addresses:
-      172.16.66.128:2477
-    Runtimes: runc
-    Default Runtime: runc
-    Init Binary: docker-init
-    containerd version: 8517738ba4b82aff5662c97ca4627e7e4d03b531
-    runc version: ac031b5bf1cc92239461125f4c1ffb760522bbf2
-    init version: N/A (expected: v0.13.0)
-    Security Options:
-     apparmor
-     seccomp
-      Profile: default
-    Kernel Version: 4.4.0-31-generic
-    Operating System: Ubuntu 16.04.1 LTS
-    OSType: linux
-    Architecture: x86_64
-    CPUs: 2
-    Total Memory: 1.937 GiB
-    Name: ubuntu
-    ID: H52R:7ZR6:EIIA:76JG:ORIY:BVKF:GSFU:HNPG:B5MK:APSC:SZ3Q:N326
-    Docker Root Dir: /var/lib/docker
-    Debug Mode (client): true
-    Debug Mode (server): true
-     File Descriptors: 30
-     Goroutines: 123
-     System Time: 2016-11-12T17:24:37.955404361-08:00
-     EventsListeners: 0
-    Http Proxy: http://test:test@proxy.example.com:8080
-    Https Proxy: https://test:test@proxy.example.com:8080
-    No Proxy: localhost,127.0.0.1,docker-registry.somecorporation.com
-    Registry: https://index.docker.io/v1/
-    WARNING: No swap limit support
-    Labels:
-     storage=ssd
-     staging=true
-    Experimental: false
-    Insecure Registries:
-     127.0.0.0/8
-    Registry Mirrors:
-      http://192.168.1.2/
-      http://registry-mirror.example.com:5000/
-    Live Restore Enabled: false
+```bash
+$ docker -D info
 
-The global `-D` option tells all `docker` commands to output debug information.
+Containers: 14
+ Running: 3
+ Paused: 1
+ Stopped: 10
+Images: 52
+Server Version: 1.13.0
+Storage Driver: overlay2
+ Backing Filesystem: extfs
+ Supports d_type: true
+ Native Overlay Diff: false
+Logging Driver: json-file
+Cgroup Driver: cgroupfs
+Plugins:
+ Volume: local
+ Network: bridge host macvlan null overlay
+Swarm: active
+ NodeID: rdjq45w1op418waxlairloqbm
+ Is Manager: true
+ ClusterID: te8kdyw33n36fqiz74bfjeixd
+ Managers: 1
+ Nodes: 2
+ Orchestration:
+  Task History Retention Limit: 5
+ Raft:
+  Snapshot Interval: 10000
+  Number of Old Snapshots to Retain: 0
+  Heartbeat Tick: 1
+  Election Tick: 3
+ Dispatcher:
+  Heartbeat Period: 5 seconds
+ CA Configuration:
+  Expiry Duration: 3 months
+ Node Address: 172.16.66.128 172.16.66.129
+ Manager Addresses:
+  172.16.66.128:2477
+Runtimes: runc
+Default Runtime: runc
+Init Binary: docker-init
+containerd version: 8517738ba4b82aff5662c97ca4627e7e4d03b531
+runc version: ac031b5bf1cc92239461125f4c1ffb760522bbf2
+init version: N/A (expected: v0.13.0)
+Security Options:
+ apparmor
+ seccomp
+  Profile: default
+Kernel Version: 4.4.0-31-generic
+Operating System: Ubuntu 16.04.1 LTS
+OSType: linux
+Architecture: x86_64
+CPUs: 2
+Total Memory: 1.937 GiB
+Name: ubuntu
+ID: H52R:7ZR6:EIIA:76JG:ORIY:BVKF:GSFU:HNPG:B5MK:APSC:SZ3Q:N326
+Docker Root Dir: /var/lib/docker
+Debug Mode (client): true
+Debug Mode (server): true
+ File Descriptors: 30
+ Goroutines: 123
+ System Time: 2016-11-12T17:24:37.955404361-08:00
+ EventsListeners: 0
+Http Proxy: http://test:test@proxy.example.com:8080
+Https Proxy: https://test:test@proxy.example.com:8080
+No Proxy: localhost,127.0.0.1,docker-registry.somecorporation.com
+Registry: https://index.docker.io/v1/
+WARNING: No swap limit support
+Labels:
+ storage=ssd
+ staging=true
+Experimental: false
+Insecure Registries:
+ 127.0.0.0/8
+Registry Mirrors:
+  http://192.168.1.2/
+  http://registry-mirror.example.com:5000/
+Live Restore Enabled: false
+```
 
-The example below shows the output for a daemon running on Red Hat Enterprise Linux,
-using the devicemapper storage driver. As can be seen in the output, additional
-information about the devicemapper storage driver is shown:
+The global `-D` option causes all `docker` commands to output debug information.
 
-    $ docker info
-    Containers: 14
-     Running: 3
-     Paused: 1
-     Stopped: 10
-    Images: 52
-    Server Version: 1.10.3
-    Storage Driver: devicemapper
-     Pool Name: docker-202:2-25583803-pool
-     Pool Blocksize: 65.54 kB
-     Base Device Size: 10.74 GB
-     Backing Filesystem: xfs
-     Data file: /dev/loop0
-     Metadata file: /dev/loop1
-     Data Space Used: 1.68 GB
-     Data Space Total: 107.4 GB
-     Data Space Available: 7.548 GB
-     Metadata Space Used: 2.322 MB
-     Metadata Space Total: 2.147 GB
-     Metadata Space Available: 2.145 GB
-     Udev Sync Supported: true
-     Deferred Removal Enabled: false
-     Deferred Deletion Enabled: false
-     Deferred Deleted Device Count: 0
-     Data loop file: /var/lib/docker/devicemapper/devicemapper/data
-     Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
-     Library Version: 1.02.107-RHEL7 (2015-12-01)
-    Execution Driver: native-0.2
-    Logging Driver: json-file
-    Plugins:
-     Volume: local
-     Network: null host bridge
-    Kernel Version: 3.10.0-327.el7.x86_64
-    Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
-    OSType: linux
-    Architecture: x86_64
-    CPUs: 1
-    Total Memory: 991.7 MiB
-    Name: ip-172-30-0-91.ec2.internal
-    ID: I54V:OLXT:HVMM:TPKO:JPHQ:CQCD:JNLC:O3BZ:4ZVJ:43XJ:PFHZ:6N2S
-    Docker Root Dir: /var/lib/docker
-    Debug mode (client): false
-    Debug mode (server): false
-    Username: gordontheturtle
-    Registry: https://index.docker.io/v1/
-    Insecure registries:
-     myinsecurehost:5000
-     127.0.0.0/8
+### Format the output
 
 You can also specify the output format:
 
-    $ docker info --format '{{json .}}'
-	{"ID":"I54V:OLXT:HVMM:TPKO:JPHQ:CQCD:JNLC:O3BZ:4ZVJ:43XJ:PFHZ:6N2S","Containers":14, ...}
+```bash
+$ docker info --format '{{json .}}'
+
+{"ID":"I54V:OLXT:HVMM:TPKO:JPHQ:CQCD:JNLC:O3BZ:4ZVJ:43XJ:PFHZ:6N2S","Containers":14, ...}
+```
+
+### Run `docker info` on Windows
 
 Here is a sample output for a daemon running on Windows Server 2016:
 
-    E:\docker>docker info
-    Containers: 1
-     Running: 0
-     Paused: 0
-     Stopped: 1
-    Images: 17
-    Server Version: 1.13.0
-    Storage Driver: windowsfilter
-     Windows:
-    Logging Driver: json-file
-    Plugins:
-     Volume: local
-     Network: nat null overlay
-    Swarm: inactive
-    Default Isolation: process
-    Kernel Version: 10.0 14393 (14393.206.amd64fre.rs1_release.160912-1937)
-    Operating System: Windows Server 2016 Datacenter
-    OSType: windows
-    Architecture: x86_64
-    CPUs: 8
-    Total Memory: 3.999 GiB
-    Name: WIN-V0V70C0LU5P
-    ID: NYMS:B5VK:UMSL:FVDZ:EWB5:FKVK:LPFL:FJMQ:H6FT:BZJ6:L2TD:XH62
-    Docker Root Dir: C:\control
-    Debug Mode (client): false
-    Debug Mode (server): false
-    Registry: https://index.docker.io/v1/
-    Insecure Registries:
-     127.0.0.0/8
-    Registry Mirrors:
-      http://192.168.1.2/
-      http://registry-mirror.example.com:5000/
-    Live Restore Enabled: false
+```none
+E:\docker>docker info
+
+Containers: 1
+ Running: 0
+ Paused: 0
+ Stopped: 1
+Images: 17
+Server Version: 1.13.0
+Storage Driver: windowsfilter
+ Windows:
+Logging Driver: json-file
+Plugins:
+ Volume: local
+ Network: nat null overlay
+Swarm: inactive
+Default Isolation: process
+Kernel Version: 10.0 14393 (14393.206.amd64fre.rs1_release.160912-1937)
+Operating System: Windows Server 2016 Datacenter
+OSType: windows
+Architecture: x86_64
+CPUs: 8
+Total Memory: 3.999 GiB
+Name: WIN-V0V70C0LU5P
+ID: NYMS:B5VK:UMSL:FVDZ:EWB5:FKVK:LPFL:FJMQ:H6FT:BZJ6:L2TD:XH62
+Docker Root Dir: C:\control
+Debug Mode (client): false
+Debug Mode (server): false
+Registry: https://index.docker.io/v1/
+Insecure Registries:
+ 127.0.0.0/8
+Registry Mirrors:
+  http://192.168.1.2/
+  http://registry-mirror.example.com:5000/
+Live Restore Enabled: false
+```
diff --git a/docs/reference/commandline/inspect.md b/docs/reference/commandline/inspect.md
index 7a0c3a0..842faf9 100644
--- a/docs/reference/commandline/inspect.md
+++ b/docs/reference/commandline/inspect.md
@@ -28,7 +28,9 @@
       --type         Return JSON for specified type
 ```
 
-By default, this will render all results in a JSON array. If the container and
+## Description
+
+By default, `docker inspect` will render all results in a JSON array. If the container and
 image have the same name, this will return container JSON for unspecified type.
 If a format is specified, the given template will be executed for each result.
 
@@ -37,46 +39,43 @@
 
 ## Examples
 
-**Get an instance's IP address:**
+### Get an instance's IP address
 
 For the most part, you can pick out any field from the JSON in a fairly
 straightforward manner.
 
-    {% raw %}
-    $ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
-    {% endraw %}
+```bash
+$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
+```
 
-**Get an instance's MAC address:**
+### Get an instance's MAC address
 
-For the most part, you can pick out any field from the JSON in a fairly
-straightforward manner.
+```bash
+$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
+```
 
-    {% raw %}
-    $ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
-    {% endraw %}
+### Get an instance's log path
 
-**Get an instance's log path:**
+```bash
+$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
+```
 
-    {% raw %}
-    $ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
-    {% endraw %}
+### Get an instance's image name
 
-**Get a Task's image name:**
+```bash
+$ docker inspect --format='{{.Container.Spec.Image}}' $INSTANCE_ID
+```
 
-    {% raw %}
-    $ docker inspect --format='{{.Container.Spec.Image}}' $INSTANCE_ID
-    {% endraw %}
+### List all port bindings
 
-**List all port bindings:**
-
-One can loop over arrays and maps in the results to produce simple text
+You can loop over arrays and maps in the results to produce simple text
 output:
 
-    {% raw %}
-    $ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID
-    {% endraw %}
+```bash
+$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID
+```
 
-**Find a specific port mapping:**
+### Find a specific port mapping
 
 The `.Field` syntax doesn't work when the field name begins with a
 number, but the template language's `index` function does. The
@@ -86,17 +85,17 @@
 then `index` 0 contains the first object inside of that. Then we ask for
 the `HostPort` field to get the public address.
 
-    {% raw %}
-    $ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
-    {% endraw %}
+```bash
+$ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
+```
 
-**Get a subsection in JSON format:**
+### Get a subsection in JSON format
 
 If you request a field which is itself a structure containing other
 fields, by default you get a Go-style dump of the inner values.
 Docker adds a template function, `json`, which can be applied to get
 results in JSON format.
 
-    {% raw %}
-    $ docker inspect --format='{{json .Config}}' $INSTANCE_ID
-    {% endraw %}
+```bash
+$ docker inspect --format='{{json .Config}}' $INSTANCE_ID
+```
diff --git a/docs/reference/commandline/kill.md b/docs/reference/commandline/kill.md
index 32fde3d..97b15ad 100644
--- a/docs/reference/commandline/kill.md
+++ b/docs/reference/commandline/kill.md
@@ -25,10 +25,11 @@
   -s, --signal string   Signal to send to the container (default "KILL")
 ```
 
+## Description
+
 The main process inside the container will be sent `SIGKILL`, or any
 signal specified with option `--signal`.
 
-> **Note:**
-> `ENTRYPOINT` and `CMD` in the *shell* form run as a subcommand of `/bin/sh -c`,
-> which does not pass signals. This means that the executable is not the container’s PID 1
-> and does not receive Unix signals.
+> **Note**: `ENTRYPOINT` and `CMD` in the *shell* form run as a subcommand of
+> `/bin/sh -c`, which does not pass signals. This means that the executable is
+> not the container’s PID 1 and does not receive Unix signals.
diff --git a/docs/reference/commandline/load.md b/docs/reference/commandline/load.md
index 04a5bc7..3ce6c19 100644
--- a/docs/reference/commandline/load.md
+++ b/docs/reference/commandline/load.md
@@ -26,28 +26,37 @@
                        The tarball may be compressed with gzip, bzip, or xz
   -q, --quiet          Suppress the load output but still outputs the imported images
 ```
+## Description
 
-Loads a tarred repository from a file or the standard input stream.
-Restores both images and tags.
+`docker load` loads a tarred repository from a file or the standard input stream.
+It restores both images and tags.
 
-    $ docker images
-    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
-    $ docker load < busybox.tar.gz
-    # […]
-    Loaded image: busybox:latest
-    $ docker images
-    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
-    busybox             latest              769b9341d937        7 weeks ago         2.489 MB
-    $ docker load --input fedora.tar
-    # […]
-    Loaded image: fedora:rawhide
-    # […]
-    Loaded image: fedora:20
-    # […]
-    $ docker images
-    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
-    busybox             latest              769b9341d937        7 weeks ago         2.489 MB
-    fedora              rawhide             0d20aec6529d        7 weeks ago         387 MB
-    fedora              20                  58394af37342        7 weeks ago         385.5 MB
-    fedora              heisenbug           58394af37342        7 weeks ago         385.5 MB
-    fedora              latest              58394af37342        7 weeks ago         385.5 MB
+## Examples
+
+```bash
+$ docker images
+
+REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
+
+$ docker load < busybox.tar.gz
+
+Loaded image: busybox:latest
+$ docker images
+REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
+busybox             latest              769b9341d937        7 weeks ago         2.489 MB
+
+$ docker load --input fedora.tar
+
+Loaded image: fedora:rawhide
+
+Loaded image: fedora:20
+
+$ docker images
+
+REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
+busybox             latest              769b9341d937        7 weeks ago         2.489 MB
+fedora              rawhide             0d20aec6529d        7 weeks ago         387 MB
+fedora              20                  58394af37342        7 weeks ago         385.5 MB
+fedora              heisenbug           58394af37342        7 weeks ago         385.5 MB
+fedora              latest              58394af37342        7 weeks ago         385.5 MB
+```
diff --git a/docs/reference/commandline/login.md b/docs/reference/commandline/login.md
index a0f35fd..e5d1656 100644
--- a/docs/reference/commandline/login.md
+++ b/docs/reference/commandline/login.md
@@ -27,12 +27,20 @@
   -u, --username string   Username
 ```
 
+## Description
+
+Login to a registry.
+
+### Login to a self-hosted registry
+
 If you want to login to a self-hosted registry you can specify this by
 adding the server name.
 
-    example:
-    $ docker login localhost:8080
+```bash
+$ docker login localhost:8080
+```
 
+### Privileged user requirement
 
 `docker login` requires user to use `sudo` or be `root`, except when:
 
@@ -43,7 +51,7 @@
 credentials.  When you log in, the command stores encoded credentials in
 `$HOME/.docker/config.json` on Linux or `%USERPROFILE%/.docker/config.json` on Windows.
 
-## Credentials store
+### Credentials store
 
 The Docker Engine can keep user credentials in an external credentials store,
 such as the native keychain of the operating system. Using an external store
@@ -60,8 +68,6 @@
 - Apple macOS keychain: https://github.com/docker/docker-credential-helpers/releases
 - Microsoft Windows Credential Manager: https://github.com/docker/docker-credential-helpers/releases
 
-### Usage
-
 You need to specify the credentials store in `$HOME/.docker/config.json`
 to tell the docker engine to use it:
 
@@ -74,7 +80,7 @@
 If you are currently logged in, run `docker logout` to remove
 the credentials from the file and run `docker login` again.
 
-### Protocol
+### Credential helper protocol
 
 Credential helpers can be any program or script that follows a very simple protocol.
 This protocol is heavily inspired by Git, but it differs in the information shared.
@@ -120,3 +126,31 @@
 
 The `erase` command can write error messages to `STDOUT` that the docker engine
 will show if there was an issue.
+
+### Credential helpers
+
+Credential helpers are similar to the credential store above, but act as the
+designated programs to handle credentials for *specific registries*. The default
+credential store (`credsStore` or the config file itself) will not be used for
+operations concerning credentials of the specified registries.
+
+### Logging out
+
+If you are currently logged in, run `docker logout` to remove
+the credentials from the default store.
+
+Credential helpers are specified in a similar way to `credsStore`, but
+allow for multiple helpers to be configured at a time. Keys specify the
+registry domain, and values specify the suffix of the program to use
+(i.e. everything after `docker-credential-`).
+For example:
+
+```json
+{
+  "credHelpers": {
+    "registry.example.com": "registryhelper",
+    "awesomereg.example.org": "hip-star",
+    "unicorn.example.io": "vcbait"
+  }
+}
+```
diff --git a/docs/reference/commandline/logout.md b/docs/reference/commandline/logout.md
index 1635e22..1e150eb 100644
--- a/docs/reference/commandline/logout.md
+++ b/docs/reference/commandline/logout.md
@@ -25,6 +25,8 @@
       --help   Print usage
 ```
 
-For example:
+## Examples
 
-    $ docker logout localhost:8080
+```bash
+$ docker logout localhost:8080
+```
diff --git a/docs/reference/commandline/logs.md b/docs/reference/commandline/logs.md
index 891e10b..a2d71bf 100644
--- a/docs/reference/commandline/logs.md
+++ b/docs/reference/commandline/logs.md
@@ -29,6 +29,8 @@
   -t, --timestamps     Show timestamps
 ```
 
+## Description
+
 The `docker logs` command batch-retrieves logs present at the time of execution.
 
 > **Note**: this command is only functional for containers that are started with
diff --git a/docs/reference/commandline/menu.md b/docs/reference/commandline/menu.md
deleted file mode 100644
index d58afac..0000000
--- a/docs/reference/commandline/menu.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: "Command line reference"
-description: "Docker's CLI command description and usage"
-keywords: "Docker, Docker documentation, CLI, command line"
-identifier:  "smn_cli"
----
-
-<!-- This file is maintained within the docker/docker Github
-     repository at https://github.com/docker/docker/. Make all
-     pull requests against that repo. If you see this file in
-     another repository, consider it read-only there, as it will
-     periodically be overwritten by the definitive file. Pull
-     requests which include edits to this file in other repositories
-     will be rejected.
--->
-
-# The Docker commands
-
-This section contains reference information on using Docker's command line
-client. Each command has a reference page along with samples. If you are
-unfamiliar with the command line, you should start by reading about how to
-[Use the Docker command line](cli.md).
-
-You start the Docker daemon with the command line. How you start the daemon
-affects your Docker containers. For that reason you should also make sure to
-read the [`dockerd`](dockerd.md) reference page.
-
-For a list of Docker commands see [Command line reference guide](index.md).
diff --git a/docs/reference/commandline/network_connect.md b/docs/reference/commandline/network_connect.md
index 52459a5..7c5a586 100644
--- a/docs/reference/commandline/network_connect.md
+++ b/docs/reference/commandline/network_connect.md
@@ -29,38 +29,55 @@
       --link-local-ip value   Add a link-local address for the container (default [])
 ```
 
+## Description
+
 Connects a container to a network. You can connect a container by name
 or by ID. Once connected, the container can communicate with other containers in
 the same network.
 
+## Examples
+
+### Connect a running container to a network
+
 ```bash
 $ docker network connect multi-host-network container1
 ```
 
+### Connect a container to a network when it starts
+
 You can also use the `docker run --network=<network-name>` option to start a container and immediately connect it to a network.
 
 ```bash
 $ docker run -itd --network=multi-host-network busybox
 ```
 
+### Specify the IP address a container will use on a given network
+
 You can specify the IP address you want to be assigned to the container's interface.
 
 ```bash
 $ docker network connect --ip 10.10.36.122 multi-host-network container2
 ```
 
+### Use the legacy `--link` option
+
 You can use `--link` option to link another container with a preferred alias
 
 ```bash
 $ docker network connect --link container1:c1 multi-host-network container2
 ```
 
+### Create a network alias for a container
+
 `--alias` option can be used to resolve the container by another name in the network
 being connected to.
 
 ```bash
 $ docker network connect --alias db --alias mysql multi-host-network container2
 ```
+
+### Network implications of stopping, pausing, or restarting containers
+
 You can pause, restart, and stop containers that are connected to a network.
 A container connects to its configured networks when it runs.
 
@@ -88,7 +105,7 @@
 
 You can connect a container to one or more networks. The networks need not be the same type. For example, you can connect a single container bridge and overlay networks.
 
-## Related information
+## Related commands
 
 * [network inspect](network_inspect.md)
 * [network create](network_create.md)
diff --git a/docs/reference/commandline/network_create.md b/docs/reference/commandline/network_create.md
index e238217..4540d53 100644
--- a/docs/reference/commandline/network_create.md
+++ b/docs/reference/commandline/network_create.md
@@ -38,6 +38,8 @@
                              network segment (default [])
 ```
 
+## Description
+
 Creates a new network. The `DRIVER` accepts `bridge` or `overlay` which are the
 built-in network drivers. If you have installed a third party or your own custom
 network driver you can specify that `DRIVER` here also. If you don't specify the
@@ -86,7 +88,9 @@
 conflicts but this is not guaranteed. It is the user's responsibility to avoid
 name conflicts.
 
-## Connect containers
+## Examples
+
+### Connect containers
 
 When you start a container, use the `--network` flag to connect it to a network.
 This example adds the `busybox` container to the `mynet` network:
@@ -107,7 +111,7 @@
 You can disconnect a container from a network using the `docker network
 disconnect` command.
 
-## Specifying advanced options
+### Specify advanced options
 
 When you create a network, Engine creates a non-overlapping subnetwork for the
 network by default. This subnetwork is not a subdivision of an existing
@@ -150,7 +154,7 @@
 Be sure that your subnetworks do not overlap. If they do, the network create
 fails and Engine returns an error.
 
-# Bridge driver options
+### Bridge driver options
 
 When creating a custom network, the default network driver (i.e. `bridge`) has
 additional options that can be passed. The following are those options and the
@@ -191,7 +195,7 @@
 to create an externally isolated `overlay` network, you can specify the
 `--internal` option.
 
-## Related information
+## Related commands
 
 * [network inspect](network_inspect.md)
 * [network connect](network_connect.md)
diff --git a/docs/reference/commandline/network_disconnect.md b/docs/reference/commandline/network_disconnect.md
index 42e976a..e855894 100644
--- a/docs/reference/commandline/network_disconnect.md
+++ b/docs/reference/commandline/network_disconnect.md
@@ -25,14 +25,19 @@
       --help    Print usage
 ```
 
-Disconnects a container from a network. The container must be running to disconnect it from the network.
+## Description
+
+Disconnects a container from a network. The container must be running to
+disconnect it from the network.
+
+## Examples
 
 ```bash
   $ docker network disconnect multi-host-network container1
 ```
 
 
-## Related information
+## Related commands
 
 * [network inspect](network_inspect.md)
 * [network connect](network_connect.md)
diff --git a/docs/reference/commandline/network_inspect.md b/docs/reference/commandline/network_inspect.md
index bc0005e..2b4c423 100644
--- a/docs/reference/commandline/network_inspect.md
+++ b/docs/reference/commandline/network_inspect.md
@@ -25,7 +25,16 @@
       --help            Print usage
 ```
 
-Returns information about one or more networks. By default, this command renders all results in a JSON object. For example, if you connect two containers to the default `bridge` network:
+## Description
+
+Returns information about one or more networks. By default, this command renders
+all results in a JSON object.
+
+## Examples
+
+## Inspect the `bridge` network
+
+Connect two containers to the default `bridge` network:
 
 ```bash
 $ sudo docker run -itd --name=container1 busybox
@@ -47,8 +56,9 @@
 [text/template](http://golang.org/pkg/text/template/) package describes all the
 details of the format.
 
-```bash
+```none
 $ sudo docker network inspect bridge
+
 [
     {
         "Name": "bridge",
@@ -95,12 +105,19 @@
 ]
 ```
 
-Returns the information about the user-defined network:
+### Inspect a user-defined network
+
+Create and inspect a user-defined network:
 
 ```bash
 $ docker network create simple-network
+
 69568e6336d8c96bbf57869030919f7c69524f71183b44d80948bd3927c87f6a
+```
+
+```none
 $ docker network inspect simple-network
+
 [
     {
         "Name": "simple-network",
@@ -124,12 +141,15 @@
 ]
 ```
 
-For swarm mode overlay networks `network inspect` also shows the IP address and node name 
-of the peers. Peers are the nodes in the swarm cluster which have at least one task attached 
+### Inspect the `ingress` network
+
+For swarm mode overlay networks `network inspect` also shows the IP address and node name
+of the peers. Peers are the nodes in the swarm cluster which have at least one task attached
 to the network. Node name is of the format `<hostname>-<unique ID>`.
 
-```bash
+```none
 $ docker network inspect ingress
+
 [
     {
         "Name": "ingress",
@@ -181,7 +201,7 @@
 ]
 ```
 
-## Related information
+## Related commands
 
 * [network disconnect ](network_disconnect.md)
 * [network connect](network_connect.md)
diff --git a/docs/reference/commandline/network_ls.md b/docs/reference/commandline/network_ls.md
index a4f671d..446fc4a 100644
--- a/docs/reference/commandline/network_ls.md
+++ b/docs/reference/commandline/network_ls.md
@@ -31,8 +31,14 @@
   -q, --quiet           Only display network IDs
 ```
 
+## Description
+
 Lists all the networks the Engine `daemon` knows about. This includes the
-networks that span across multiple hosts in a cluster, for example:
+networks that span across multiple hosts in a cluster.
+
+## Examples
+
+### List all networks
 
 ```bash
 $ sudo docker network ls
@@ -55,7 +61,7 @@
 63d1ff1f77b07ca51070a8c227e962238358bd310bde1529cf62e6c307ade161   dev                 bridge           local
 ```
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
 is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
@@ -175,7 +181,7 @@
 A warning will be issued when trying to remove a network that has containers
 attached.
 
-## Formatting
+### Formatting
 
 The formatting options (`--format`) pretty-prints networks output
 using a Go template.
@@ -207,7 +213,7 @@
 391df270dc66: null
 ```
 
-## Related information
+## Related commands
 
 * [network disconnect ](network_disconnect.md)
 * [network connect](network_connect.md)
diff --git a/docs/reference/commandline/network_prune.md b/docs/reference/commandline/network_prune.md
index 5b65465..e57741d 100644
--- a/docs/reference/commandline/network_prune.md
+++ b/docs/reference/commandline/network_prune.md
@@ -16,12 +16,16 @@
       --help    Print usage
 ```
 
-Remove all unused networks. Unused networks are those which are not referenced by any containers.
+## Description
 
-Example output:
+Remove all unused networks. Unused networks are those which are not referenced
+by any containers.
+
+## Examples
 
 ```bash
 $ docker network prune
+
 WARNING! This will remove all networks not used by at least one container.
 Are you sure you want to continue? [y/N] y
 Deleted Networks:
@@ -29,7 +33,7 @@
 n2
 ```
 
-## Related information
+## Related commands
 
 * [network disconnect ](network_disconnect.md)
 * [network connect](network_connect.md)
diff --git a/docs/reference/commandline/network_rm.md b/docs/reference/commandline/network_rm.md
index f06b4c0..aab487a 100644
--- a/docs/reference/commandline/network_rm.md
+++ b/docs/reference/commandline/network_rm.md
@@ -27,14 +27,23 @@
       --help   Print usage
 ```
 
+## Description
+
 Removes one or more networks by name or identifier. To remove a network,
 you must first disconnect any containers connected to it.
+
+## Examples
+
+### Remove a network
+
 To remove the network named 'my-network':
 
 ```bash
   $ docker network rm my-network
 ```
 
+### Remove multiple networks
+
 To delete multiple networks in a single `docker network rm` command, provide
 multiple network names or ids. The following example deletes a network with id
 `3695c422697f` and a network named `my-network`:
@@ -48,7 +57,7 @@
 list and tries to delete that. The command reports success or failure for each
 deletion.
 
-## Related information
+## Related commands
 
 * [network disconnect ](network_disconnect.md)
 * [network connect](network_connect.md)
diff --git a/docs/reference/commandline/node_demote.md b/docs/reference/commandline/node_demote.md
index 9a81bb9..e6e59d8 100644
--- a/docs/reference/commandline/node_demote.md
+++ b/docs/reference/commandline/node_demote.md
@@ -25,14 +25,19 @@
 
 ```
 
-Demotes an existing manager so that it is no longer a manager. This command targets a docker engine that is a manager in the swarm.
+## Description
 
+Demotes an existing manager so that it is no longer a manager. This command
+targets a docker engine that is a manager in the swarm.
+
+
+## Examples
 
 ```bash
 $ docker node demote <node name>
 ```
 
-## Related information
+## Related commands
 
 * [node inspect](node_inspect.md)
 * [node ls](node_ls.md)
diff --git a/docs/reference/commandline/node_inspect.md b/docs/reference/commandline/node_inspect.md
index fac688f..b958e3d 100644
--- a/docs/reference/commandline/node_inspect.md
+++ b/docs/reference/commandline/node_inspect.md
@@ -26,108 +26,118 @@
       --pretty          Print the information in a human friendly format.
 ```
 
+## Description
+
 Returns information about a node. By default, this command renders all results
 in a JSON array. You can specify an alternate format to execute a
 given template for each result. Go's
 [text/template](http://golang.org/pkg/text/template/) package describes all the
 details of the format.
 
-Example output:
+## Examples
 
-    $ docker node inspect swarm-manager
-    [
-    {
-        "ID": "e216jshn25ckzbvmwlnh5jr3g",
-        "Version": {
-            "Index": 10
+### Inspect a node
+
+```none
+$ docker node inspect swarm-manager
+
+[
+{
+    "ID": "e216jshn25ckzbvmwlnh5jr3g",
+    "Version": {
+        "Index": 10
+    },
+    "CreatedAt": "2016-06-16T22:52:44.9910662Z",
+    "UpdatedAt": "2016-06-16T22:52:45.230878043Z",
+    "Spec": {
+        "Role": "manager",
+        "Availability": "active"
+    },
+    "Description": {
+        "Hostname": "swarm-manager",
+        "Platform": {
+            "Architecture": "x86_64",
+            "OS": "linux"
         },
-        "CreatedAt": "2016-06-16T22:52:44.9910662Z",
-        "UpdatedAt": "2016-06-16T22:52:45.230878043Z",
-        "Spec": {
-            "Role": "manager",
-            "Availability": "active"
+        "Resources": {
+            "NanoCPUs": 1000000000,
+            "MemoryBytes": 1039843328
         },
-        "Description": {
-            "Hostname": "swarm-manager",
-            "Platform": {
-                "Architecture": "x86_64",
-                "OS": "linux"
-            },
-            "Resources": {
-                "NanoCPUs": 1000000000,
-                "MemoryBytes": 1039843328
-            },
-            "Engine": {
-                "EngineVersion": "1.12.0",
-                "Plugins": [
-                    {
-                        "Type": "Volume",
-                        "Name": "local"
-                    },
-                    {
-                        "Type": "Network",
-                        "Name": "overlay"
-                    },
-                    {
-                        "Type": "Network",
-                        "Name": "null"
-                    },
-                    {
-                        "Type": "Network",
-                        "Name": "host"
-                    },
-                    {
-                        "Type": "Network",
-                        "Name": "bridge"
-                    },
-                    {
-                        "Type": "Network",
-                        "Name": "overlay"
-                    }
-                ]
-            }
-        },
-        "Status": {
-            "State": "ready",
-            "Addr": "168.0.32.137"
-        },
-        "ManagerStatus": {
-            "Leader": true,
-            "Reachability": "reachable",
-            "Addr": "168.0.32.137:2377"
+        "Engine": {
+            "EngineVersion": "1.12.0",
+            "Plugins": [
+                {
+                    "Type": "Volume",
+                    "Name": "local"
+                },
+                {
+                    "Type": "Network",
+                    "Name": "overlay"
+                },
+                {
+                    "Type": "Network",
+                    "Name": "null"
+                },
+                {
+                    "Type": "Network",
+                    "Name": "host"
+                },
+                {
+                    "Type": "Network",
+                    "Name": "bridge"
+                },
+                {
+                    "Type": "Network",
+                    "Name": "overlay"
+                }
+            ]
         }
+    },
+    "Status": {
+        "State": "ready",
+        "Addr": "168.0.32.137"
+    },
+    "ManagerStatus": {
+        "Leader": true,
+        "Reachability": "reachable",
+        "Addr": "168.0.32.137:2377"
     }
-    ]
+}
+]
+```
 
-    {% raw %}
-    $ docker node inspect --format '{{ .ManagerStatus.Leader }}' self
-    false
-    {% endraw %}
+### Specify an output format
 
-    $ docker node inspect --pretty self
-    ID:                     e216jshn25ckzbvmwlnh5jr3g
-    Hostname:               swarm-manager
-    Joined at:              2016-06-16 22:52:44.9910662 +0000 utc
-    Status:
-     State:                 Ready
-     Availability:          Active
-     Address:               172.17.0.2
-    Manager Status:
-     Address:               172.17.0.2:2377
-     Raft Status:           Reachable
-     Leader:                Yes
-    Platform:
-     Operating System:      linux
-     Architecture:          x86_64
-    Resources:
-     CPUs:                  4
-     Memory:                7.704 GiB
-    Plugins:
-      Network:              overlay, bridge, null, host, overlay
-      Volume:               local
-    Engine Version:         1.12.0
+```none
+$ docker node inspect --format '{{ .ManagerStatus.Leader }}' self
 
-## Related information
+false
+
+$ docker node inspect --pretty self
+ID:                     e216jshn25ckzbvmwlnh5jr3g
+Hostname:               swarm-manager
+Joined at:              2016-06-16 22:52:44.9910662 +0000 utc
+Status:
+ State:                 Ready
+ Availability:          Active
+ Address:               172.17.0.2
+Manager Status:
+ Address:               172.17.0.2:2377
+ Raft Status:           Reachable
+ Leader:                Yes
+Platform:
+ Operating System:      linux
+ Architecture:          x86_64
+Resources:
+ CPUs:                  4
+ Memory:                7.704 GiB
+Plugins:
+  Network:              overlay, bridge, null, host, overlay
+  Volume:               local
+Engine Version:         1.12.0
+```
+
+## Related commands
 
 * [node demote](node_demote.md)
 * [node ls](node_ls.md)
diff --git a/docs/reference/commandline/node_ls.md b/docs/reference/commandline/node_ls.md
index 5f61713..836fcea 100644
--- a/docs/reference/commandline/node_ls.md
+++ b/docs/reference/commandline/node_ls.md
@@ -29,9 +29,13 @@
   -q, --quiet          Only display IDs
 ```
 
-Lists all the nodes that the Docker Swarm manager knows about. You can filter using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section for more information about available filter options.
+## Description
 
-Example output:
+Lists all the nodes that the Docker Swarm manager knows about. You can filter
+using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section
+for more information about available filter options.
+
+## Examples
 
 ```bash
 $ docker node ls
@@ -42,7 +46,7 @@
 e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader
 ```
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
 than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@@ -55,7 +59,7 @@
 * [name](node_ls.md#name)
 * [role](node_ls.md#role)
 
-#### ID
+#### id
 
 The `id` filter matches all or part of a node's id.
 
@@ -66,7 +70,7 @@
 1bcef6utixb0l0ca7gxuivsj0  swarm-worker2  Ready   Active
 ```
 
-#### Label
+#### label
 
 The `label` filter matches nodes based on engine labels and on the presence of a `label` alone or a `label` and a value. Node labels are currently not used for filtering.
 
@@ -79,7 +83,7 @@
 1bcef6utixb0l0ca7gxuivsj0  swarm-worker2  Ready   Active
 ```
 
-#### Membership
+#### membersip
 
 The `membership` filter matches nodes based on the presence of a `membership` and a value
 `accepted` or `pending`.
@@ -94,7 +98,7 @@
 38ciaotwjuritcdtn9npbnkuz    swarm-worker1   Ready   Active
 ```
 
-#### Name
+#### name
 
 The `name` filter matches on all or part of a node hostname.
 
@@ -107,7 +111,7 @@
 e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader
 ```
 
-#### Role
+#### role
 
 The `role` filter matches nodes based on the presence of a `role` and a value `worker` or `manager`.
 
@@ -120,7 +124,7 @@
 e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader
 ```
 
-## Related information
+## Related commands
 
 * [node demote](node_demote.md)
 * [node inspect](node_inspect.md)
diff --git a/docs/reference/commandline/node_promote.md b/docs/reference/commandline/node_promote.md
index 92092a8..1ebbe95 100644
--- a/docs/reference/commandline/node_promote.md
+++ b/docs/reference/commandline/node_promote.md
@@ -24,14 +24,18 @@
       --help   Print usage
 ```
 
-Promotes a node to manager. This command targets a docker engine that is a manager in the swarm.
+## Description
 
+Promotes a node to manager. This command targets a docker engine that is a
+manager in the swarm.
+
+## Examples
 
 ```bash
 $ docker node promote <node name>
 ```
 
-## Related information
+## Related commands
 
 * [node demote](node_demote.md)
 * [node inspect](node_inspect.md)
diff --git a/docs/reference/commandline/node_ps.md b/docs/reference/commandline/node_ps.md
index 7f07c5e..e2e1418 100644
--- a/docs/reference/commandline/node_ps.md
+++ b/docs/reference/commandline/node_ps.md
@@ -28,20 +28,23 @@
       --no-trunc       Do not truncate output
 ```
 
+## Description
+
 Lists all the tasks on a Node that Docker knows about. You can filter using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section for more information about available filter options.
 
-Example output:
+## Examples
 
-    $ docker node ps swarm-manager1
-    NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
-    redis.1.7q92v0nr1hcgts2amcjyqg3pq   redis:3.0.6  swarm-manager1  Running        Running 5 hours
-    redis.6.b465edgho06e318egmgjbqo4o   redis:3.0.6  swarm-manager1  Running        Running 29 seconds
-    redis.7.bg8c07zzg87di2mufeq51a2qp   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
-    redis.9.dkkual96p4bb3s6b10r7coxxt   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
-    redis.10.0tgctg8h8cech4w0k0gwrmr23  redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+```bash
+$ docker node ps swarm-manager1
+NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
+redis.1.7q92v0nr1hcgts2amcjyqg3pq   redis:3.0.6  swarm-manager1  Running        Running 5 hours
+redis.6.b465edgho06e318egmgjbqo4o   redis:3.0.6  swarm-manager1  Running        Running 29 seconds
+redis.7.bg8c07zzg87di2mufeq51a2qp   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+redis.9.dkkual96p4bb3s6b10r7coxxt   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+redis.10.0tgctg8h8cech4w0k0gwrmr23  redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+```
 
-
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
 than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@@ -59,23 +62,27 @@
 
 The following filter matches all tasks with a name containing the `redis` string.
 
-    $ docker node ps -f name=redis swarm-manager1
-    NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
-    redis.1.7q92v0nr1hcgts2amcjyqg3pq   redis:3.0.6  swarm-manager1  Running        Running 5 hours
-    redis.6.b465edgho06e318egmgjbqo4o   redis:3.0.6  swarm-manager1  Running        Running 29 seconds
-    redis.7.bg8c07zzg87di2mufeq51a2qp   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
-    redis.9.dkkual96p4bb3s6b10r7coxxt   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
-    redis.10.0tgctg8h8cech4w0k0gwrmr23  redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+```bash
+$ docker node ps -f name=redis swarm-manager1
 
+NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
+redis.1.7q92v0nr1hcgts2amcjyqg3pq   redis:3.0.6  swarm-manager1  Running        Running 5 hours
+redis.6.b465edgho06e318egmgjbqo4o   redis:3.0.6  swarm-manager1  Running        Running 29 seconds
+redis.7.bg8c07zzg87di2mufeq51a2qp   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+redis.9.dkkual96p4bb3s6b10r7coxxt   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+redis.10.0tgctg8h8cech4w0k0gwrmr23  redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+```
 
 #### id
 
 The `id` filter matches a task's id.
 
-    $ docker node ps -f id=bg8c07zzg87di2mufeq51a2qp swarm-manager1
-    NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
-    redis.7.bg8c07zzg87di2mufeq51a2qp   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+```bash
+$ docker node ps -f id=bg8c07zzg87di2mufeq51a2qp swarm-manager1
 
+NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
+redis.7.bg8c07zzg87di2mufeq51a2qp   redis:3.0.6  swarm-manager1  Running        Running 5 seconds
+```
 
 #### label
 
@@ -86,6 +93,7 @@
 
 ```bash
 $ docker node ps -f "label=usage"
+
 NAME                               IMAGE        NODE            DESIRED STATE  CURRENT STATE
 redis.6.b465edgho06e318egmgjbqo4o  redis:3.0.6  swarm-manager1  Running        Running 10 minutes
 redis.7.bg8c07zzg87di2mufeq51a2qp  redis:3.0.6  swarm-manager1  Running        Running 9 minutes
@@ -97,7 +105,7 @@
 The `desired-state` filter can take the values `running`, `shutdown`, and `accepted`.
 
 
-## Related information
+## Related commands
 
 * [node demote](node_demote.md)
 * [node inspect](node_inspect.md)
diff --git a/docs/reference/commandline/node_rm.md b/docs/reference/commandline/node_rm.md
index b245d63..c2fdd4d 100644
--- a/docs/reference/commandline/node_rm.md
+++ b/docs/reference/commandline/node_rm.md
@@ -28,33 +28,40 @@
       --help    Print usage
 ```
 
+## Description
+
 When run from a manager node, removes the specified nodes from a swarm.
 
 
-Example output:
+## Examples
 
-```nohighlight
+### Remove a stopped node from the swarm
+
+```bash
 $ docker node rm swarm-node-02
 
 Node swarm-node-02 removed from swarm
 ```
+### Attempt to remove a running node from a swarm
 
 Removes the specified nodes from the swarm, but only if the nodes are in the
 down state. If you attempt to remove an active node you will receive an error:
 
-```nohighlight
+```non
 $ docker node rm swarm-node-03
 
 Error response from daemon: rpc error: code = 9 desc = node swarm-node-03 is not
 down and can't be removed
 ```
 
+### Forcibly remove an inaccessible node from a swarm
+
 If you lose access to a worker node or need to shut it down because it has been
 compromised or is not behaving as expected, you can use the `--force` option.
 This may cause transient errors or interruptions, depending on the type of task
 being run on the node.
 
-```nohighlight
+```bash
 $ docker node rm --force swarm-node-03
 
 Node swarm-node-03 removed from swarm
@@ -63,7 +70,7 @@
 A manager node must be demoted to a worker node (using `docker node demote`)
 before you can remove it from the swarm.
 
-## Related information
+## Related commands
 
 * [node demote](node_demote.md)
 * [node inspect](node_inspect.md)
diff --git a/docs/reference/commandline/node_update.md b/docs/reference/commandline/node_update.md
index aa65d03..ba824c9 100644
--- a/docs/reference/commandline/node_update.md
+++ b/docs/reference/commandline/node_update.md
@@ -13,7 +13,7 @@
      will be rejected.
 -->
 
-## update
+# update
 
 ```markdown
 Usage:  docker node update [OPTIONS] NODE
@@ -28,6 +28,12 @@
       --role string           Role of the node (worker/manager)
 ```
 
+## Description
+
+Update metadata about a node, such as its availability, labels, or roles.
+
+## Examples
+
 ### Add label metadata to a node
 
 Add metadata to a swarm node using node labels. You can specify a node label as
@@ -39,7 +45,7 @@
 
 To add multiple labels to a node, pass the `--label-add` flag for each label:
 
-``` bash
+```bash
 $ docker node update --label-add foo --label-add bar worker1
 ```
 
@@ -61,7 +67,7 @@
 For more information about labels, refer to [apply custom
 metadata](https://docs.docker.com/engine/userguide/labels-custom-metadata/).
 
-## Related information
+## Related commands
 
 * [node demote](node_demote.md)
 * [node inspect](node_inspect.md)
diff --git a/docs/reference/commandline/pause.md b/docs/reference/commandline/pause.md
index e2dd800..5bb652b 100644
--- a/docs/reference/commandline/pause.md
+++ b/docs/reference/commandline/pause.md
@@ -24,6 +24,8 @@
       --help   Print usage
 ```
 
+## Description
+
 The `docker pause` command suspends all processes in the specified containers.
 On Linux, this uses the cgroups freezer. Traditionally, when suspending a process
 the `SIGSTOP` signal is used, which is observable by the process being suspended.
@@ -35,6 +37,12 @@
 [cgroups freezer documentation](https://www.kernel.org/doc/Documentation/cgroup-v1/freezer-subsystem.txt)
 for further details.
 
-## Related information
+## Examples
+
+```bash
+$ docker pause my_container
+```
+
+## Related commands
 
 * [unpause](unpause.md)
diff --git a/docs/reference/commandline/plugin_create.md b/docs/reference/commandline/plugin_create.md
index 9d4e99e..6f17543 100644
--- a/docs/reference/commandline/plugin_create.md
+++ b/docs/reference/commandline/plugin_create.md
@@ -21,33 +21,38 @@
 Create a plugin from a rootfs and configuration. Plugin data directory must contain config.json and rootfs directory.
 
 Options:
-      --compress   Compress the context using gzip 
+      --compress   Compress the context using gzip
       --help       Print usage
 ```
 
+## Description
+
 Creates a plugin. Before creating the plugin, prepare the plugin's root filesystem as well as
 [the config.json](../../extend/config.md)
 
+## Examples
 
 The following example shows how to create a sample `plugin`.
 
 ```bash
-
 $ ls -ls /home/pluginDir
 
 4 -rw-r--r--  1 root root 431 Nov  7 01:40 config.json
 0 drwxr-xr-x 19 root root 420 Nov  7 01:40 rootfs
 
 $ docker plugin create plugin /home/pluginDir
+
 plugin
 
-NAME                  	TAG                 DESCRIPTION                  ENABLED
-plugin                  latest              A sample plugin for Docker   true
+$ docker plugin ls
+
+ID                  NAME                TAG                 DESCRIPTION                  ENABLED
+672d8144ec02        plugin              latest              A sample plugin for Docker   false
 ```
 
 The plugin can subsequently be enabled for local use or pushed to the public registry.
 
-## Related information
+## Related commands
 
 * [plugin disable](plugin_disable.md)
 * [plugin enable](plugin_enable.md)
diff --git a/docs/reference/commandline/plugin_disable.md b/docs/reference/commandline/plugin_disable.md
index 451f1ac..2ff8188 100644
--- a/docs/reference/commandline/plugin_disable.md
+++ b/docs/reference/commandline/plugin_disable.md
@@ -25,10 +25,13 @@
       --help    Print usage
 ```
 
+## Description
+
 Disables a plugin. The plugin must be installed before it can be disabled,
 see [`docker plugin install`](plugin_install.md). Without the `-f` option,
 a plugin that has references (eg, volumes, networks) cannot be disabled.
 
+## Examples
 
 The following example shows that the `sample-volume-plugin` plugin is installed
 and enabled:
@@ -53,7 +56,7 @@
 69553ca1d123        tiborvass/sample-volume-plugin   latest              A test plugin for Docker   false
 ```
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin enable](plugin_enable.md)
diff --git a/docs/reference/commandline/plugin_enable.md b/docs/reference/commandline/plugin_enable.md
index df8bee3..2098a11 100644
--- a/docs/reference/commandline/plugin_enable.md
+++ b/docs/reference/commandline/plugin_enable.md
@@ -25,9 +25,12 @@
       --timeout int   HTTP client timeout (in seconds)
 ```
 
+## Description
+
 Enables a plugin. The plugin must be installed before it can be enabled,
 see [`docker plugin install`](plugin_install.md).
 
+## Examples
 
 The following example shows that the `sample-volume-plugin` plugin is installed,
 but disabled:
@@ -52,7 +55,7 @@
 69553ca1d123        tiborvass/sample-volume-plugin   latest              A test plugin for Docker   true
 ```
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin disable](plugin_disable.md)
diff --git a/docs/reference/commandline/plugin_inspect.md b/docs/reference/commandline/plugin_inspect.md
index fdcc030..c0e6573 100644
--- a/docs/reference/commandline/plugin_inspect.md
+++ b/docs/reference/commandline/plugin_inspect.md
@@ -25,15 +25,17 @@
       --help            Print usage
 ```
 
+## Description
+
 Returns information about a plugin. By default, this command renders all results
 in a JSON array.
 
-Example output:
+## Examples
 
-```bash
+
+```none
 $ docker plugin inspect tiborvass/sample-volume-plugin:latest
-```
-```JSON
+
 {
   "Id": "8c74c978c434745c3ade82f1bc0acf38d04990eaf494fa507c16d9f1daa99c21",
   "Name": "tiborvass/sample-volume-plugin:latest",
@@ -140,18 +142,19 @@
   }
 }
 ```
+
 (output formatted for readability)
 
+### Formatting the output
 
 ```bash
 $ docker plugin inspect -f '{{.Id}}' tiborvass/sample-volume-plugin:latest
-```
-```
+
 8c74c978c434745c3ade82f1bc0acf38d04990eaf494fa507c16d9f1daa99c21
 ```
 
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin enable](plugin_enable.md)
diff --git a/docs/reference/commandline/plugin_install.md b/docs/reference/commandline/plugin_install.md
index 0601193..f7ad36d 100644
--- a/docs/reference/commandline/plugin_install.md
+++ b/docs/reference/commandline/plugin_install.md
@@ -27,16 +27,19 @@
       --help                    Print usage
 ```
 
+## Description
+
 Installs and enables a plugin. Docker looks first for the plugin on your Docker
 host. If the plugin does not exist locally, then the plugin is pulled from
 the registry. Note that the minimum required registry version to distribute
 plugins is 2.3.0
 
+## Examples
 
-The following example installs `vieus/sshfs` plugin and [set](plugin_set.md) it's env variable
-`DEBUG` to 1. Install consists of pulling the plugin from Docker Hub, prompting
-the user to accept the list of privileges that the plugin needs, settings parameters
- and enabling the plugin.
+The following example installs `vieus/sshfs` plugin and [sets](plugin_set.md) its
+`DEBUG` environment variable to `1`. To install, `pull` the plugin from Docker
+Hub and prompt the user to accept the list of privileges that the plugin needs,
+set the plugin's parameters and enable the plugin.
 
 ```bash
 $ docker plugin install vieux/sshfs DEBUG=1
@@ -58,7 +61,7 @@
 69553ca1d123        vieux/sshfs           latest              sshFS plugin for Docker    true
 ```
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin disable](plugin_disable.md)
diff --git a/docs/reference/commandline/plugin_ls.md b/docs/reference/commandline/plugin_ls.md
index 7a3426d..64661de 100644
--- a/docs/reference/commandline/plugin_ls.md
+++ b/docs/reference/commandline/plugin_ls.md
@@ -28,10 +28,12 @@
       --no-trunc   Don't truncate output
 ```
 
+## Description
+
 Lists all the plugins that are currently installed. You can install plugins
 using the [`docker plugin install`](plugin_install.md) command.
 
-Example output:
+## Examples
 
 ```bash
 $ docker plugin ls
@@ -40,7 +42,7 @@
 69553ca1d123        tiborvass/sample-volume-plugin   latest              A test plugin for Docker   true
 ```
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin disable](plugin_disable.md)
diff --git a/docs/reference/commandline/plugin_push.md b/docs/reference/commandline/plugin_push.md
index e61d109..905fa82 100644
--- a/docs/reference/commandline/plugin_push.md
+++ b/docs/reference/commandline/plugin_push.md
@@ -22,22 +22,27 @@
       --help       Print usage
 ```
 
-Use `docker plugin create` to create the plugin. Once the plugin is ready for distribution,
-use `docker plugin push` to share your images to the Docker Hub registry or to a self-hosted one.
+## Description
+
+After you have created a plugin using `docker plugin create` and the plugin is
+ready for distribution, use `docker plugin push` to share your images to Docker
+Hub or a self-hosted registry.
 
 Registry credentials are managed by [docker login](login.md).
 
+## Examples
+
 The following example shows how to push a sample `user/plugin`.
 
 ```bash
-
 $ docker plugin ls
+
 ID                  NAME                  TAG                 DESCRIPTION                ENABLED
 69553ca1d456        user/plugin           latest              A sample plugin for Docker false
 $ docker plugin push user/plugin
 ```
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin disable](plugin_disable.md)
diff --git a/docs/reference/commandline/plugin_rm.md b/docs/reference/commandline/plugin_rm.md
index 323ce83..c820c86 100644
--- a/docs/reference/commandline/plugin_rm.md
+++ b/docs/reference/commandline/plugin_rm.md
@@ -28,12 +28,17 @@
           --help   Print usage
 ```
 
+## Description
+
 Removes a plugin. You cannot remove a plugin if it is enabled, you must disable
 a plugin using the [`docker plugin disable`](plugin_disable.md) before removing
 it (or use --force, use of force is not recommended, since it can affect
 functioning of running containers using the plugin).
 
-The following example disables and removes the `sample-volume-plugin:latest` plugin;
+## Examples
+
+The following example disables and removes the `sample-volume-plugin:latest`
+plugin:
 
 ```bash
 $ docker plugin disable tiborvass/sample-volume-plugin
@@ -43,7 +48,7 @@
 tiborvass/sample-volume-plugin
 ```
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin disable](plugin_disable.md)
diff --git a/docs/reference/commandline/plugin_set.md b/docs/reference/commandline/plugin_set.md
index c206a8a..4b7ce61 100644
--- a/docs/reference/commandline/plugin_set.md
+++ b/docs/reference/commandline/plugin_set.md
@@ -24,6 +24,8 @@
       --help                    Print usage
 ```
 
+## Description
+
 Change settings for a plugin. The plugin must be disabled.
 
 The settings currently supported are:
@@ -32,11 +34,16 @@
  * path of devices
  * args
 
+## Examples
+
+### Change an environment variable
+
 The following example change the env variable `DEBUG` on the
 `sample-volume-plugin` plugin.
 
 ```bash
 $ docker plugin inspect -f {{.Settings.Env}} tiborvass/sample-volume-plugin
+
 [DEBUG=0]
 
 $ docker plugin set tiborvass/sample-volume-plugin DEBUG=1
@@ -45,6 +52,8 @@
 [DEBUG=1]
 ```
 
+### Change the source of a mount
+
 The following example change the source of the `mymount` mount on
 the `myplugin` plugin.
 
@@ -58,7 +67,10 @@
 /bar
 ```
 
-Note: since only `source` is settable in `mymount`, `docker plugins set mymount=/bar myplugin` would work too.
+> **Note**: Since only `source` is settable in `mymount`,
+> `docker plugins set mymount=/bar myplugin` would work too.
+
+### Change a device path
 
 The following example change the path of the `mydevice` device on
 the `myplugin` plugin.
@@ -73,7 +85,10 @@
 /dev/bar
 ```
 
-Note: since only `path` is settable in `mydevice`, `docker plugins set mydevice=/dev/bar myplugin` would work too.
+> **Note**: Since only `path` is settable in `mydevice`,
+> `docker plugins set mydevice=/dev/bar myplugin` would work too.
+
+### Change the source of the arguments
 
 The following example change the source of the args on the `myplugin` plugin.
 
@@ -87,7 +102,7 @@
 ["foo", "bar", "baz"]
 ```
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin disable](plugin_disable.md)
diff --git a/docs/reference/commandline/plugin_upgrade.md b/docs/reference/commandline/plugin_upgrade.md
index 20efc57..38191ff 100644
--- a/docs/reference/commandline/plugin_upgrade.md
+++ b/docs/reference/commandline/plugin_upgrade.md
@@ -27,11 +27,15 @@
       --skip-remote-check       Do not check if specified remote plugin matches existing plugin image
 ```
 
+## Description
+
 Upgrades an existing plugin to the specified remote plugin image. If no remote
 is specified, Docker will re-pull the current image and use the updated version.
 All existing references to the plugin will continue to work.
 The plugin must be disabled before running the upgrade.
 
+## Examples
+
 The following example installs `vieus/sshfs` plugin, uses it to create and use
 a volume, then upgrades the plugin.
 
@@ -71,7 +75,7 @@
 hello
 ```
 
-## Related information
+## Related commands
 
 * [plugin create](plugin_create.md)
 * [plugin disable](plugin_disable.md)
diff --git a/docs/reference/commandline/port.md b/docs/reference/commandline/port.md
index bc90b6e..c38763e 100644
--- a/docs/reference/commandline/port.md
+++ b/docs/reference/commandline/port.md
@@ -24,18 +24,24 @@
       --help   Print usage
 ```
 
+## Examples
+
+### Show all mapped ports
+
 You can find out all the ports mapped by not specifying a `PRIVATE_PORT`, or
 just a specific mapping:
 
-    $ docker ps
-    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
-    b650456536c7        busybox:latest      top                 54 minutes ago      Up 54 minutes       0.0.0.0:1234->9876/tcp, 0.0.0.0:4321->7890/tcp   test
-    $ docker port test
-    7890/tcp -> 0.0.0.0:4321
-    9876/tcp -> 0.0.0.0:1234
-    $ docker port test 7890/tcp
-    0.0.0.0:4321
-    $ docker port test 7890/udp
-    2014/06/24 11:53:36 Error: No public port '7890/udp' published for test
-    $ docker port test 7890
-    0.0.0.0:4321
+```bash
+$ docker ps
+CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
+b650456536c7        busybox:latest      top                 54 minutes ago      Up 54 minutes       0.0.0.0:1234->9876/tcp, 0.0.0.0:4321->7890/tcp   test
+$ docker port test
+7890/tcp -> 0.0.0.0:4321
+9876/tcp -> 0.0.0.0:1234
+$ docker port test 7890/tcp
+0.0.0.0:4321
+$ docker port test 7890/udp
+2014/06/24 11:53:36 Error: No public port '7890/udp' published for test
+$ docker port test 7890
+0.0.0.0:4321
+```
diff --git a/docs/reference/commandline/ps.md b/docs/reference/commandline/ps.md
index 164e364..be88f9a 100644
--- a/docs/reference/commandline/ps.md
+++ b/docs/reference/commandline/ps.md
@@ -35,7 +35,7 @@
                         - name=<string> a container's name
                         - network=(<network-id>|<network-name>)
                         - since=(<container-name>|<container-id>)
-                        - status=(created|restarting|removing|running|paused|exited) 
+                        - status=(created|restarting|removing|running|paused|exited)
                         - volume=(<volume name>|<mount point destination>)
       --format string   Pretty-print containers using a Go template
       --help            Print usage
@@ -46,6 +46,10 @@
   -s, --size            Display total file sizes
 ```
 
+## Examples
+
+### Prevent truncating output
+
 Running `docker ps --no-trunc` showing 2 linked containers.
 
 ```bash
@@ -56,6 +60,8 @@
 d7886598dbe2        crosbymichael/redis:latest   /redis-server --dir    33 minutes ago       Up 33 minutes       6379/tcp            redis,webapp/db
 ```
 
+### Show both running and stopped containers
+
 The `docker ps` command only shows running containers by default. To see all
 containers, use the `-a` (or `--all`) flag:
 
@@ -67,7 +73,7 @@
 container that exposes TCP ports `100, 101, 102` displays `100-102/tcp` in
 the `PORTS` column.
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there is more
 than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`)
@@ -87,7 +93,7 @@
 * network (network id or name) - filters containers connected to the provided network
 * health (starting|healthy|unhealthy|none) - filters containers based on healthcheck status
 
-#### Label
+#### label
 
 The `label` filter matches containers based on the presence of a `label` alone or a `label` and a
 value.
@@ -111,7 +117,7 @@
 d85756f57265        busybox             "top"               About a minute ago   Up About a minute                       high_albattani
 ```
 
-#### Name
+#### name
 
 The `name` filter matches on all or part of a container's name.
 
@@ -135,7 +141,7 @@
 673394ef1d4c        busybox             "top"               38 minutes ago      Up 38 minutes                           nostalgic_shockley
 ```
 
-#### Exited
+#### exited
 
 The `exited` filter matches containers by exist status code. For example, to
 filter for containers that have exited successfully:
@@ -149,13 +155,14 @@
 48ee228c9464        fedora:20         bash                   2 weeks ago         Exited (0) 2 weeks ago                              tender_torvalds
 ```
 
-#### Killed containers
+#### Filter by exit signal
 
 You can use a filter to locate containers that exited with status of `137`
 meaning a `SIGKILL(9)` killed them.
 
-```bash
+```none
 $ docker ps -a --filter 'exited=137'
+
 CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                       PORTS               NAMES
 b3e1c0ed5bfe        ubuntu:latest       "sleep 1000"           12 seconds ago      Exited (137) 5 seconds ago                       grave_kowalevski
 a2eb5558d669        redis:latest        "/entrypoint.sh redi   2 hours ago         Exited (137) 2 hours ago                         sharp_lalande
@@ -167,7 +174,7 @@
 * `docker kill` kills the container
 * Docker daemon restarts which kills all running containers
 
-#### Status
+#### status
 
 The `status` filter matches containers by status. You can filter using
 `created`, `restarting`, `running`, `removing`, `paused`, `exited` and `dead`. For example,
@@ -191,7 +198,7 @@
 673394ef1d4c        busybox             "top"               About an hour ago   Up About an hour (Paused)                       nostalgic_shockley
 ```
 
-#### Ancestor
+#### ancestor
 
 The `ancestor` filter matches containers based on its image or a descendant of
 it. The filter supports the following image representation:
@@ -244,7 +251,9 @@
 82a598284012        ubuntu:12.04.5      "top"               3 minutes ago        Up 3 minutes                            sleepy_bose
 ```
 
-#### Before
+#### Create time
+
+##### before
 
 The `before` filter shows only containers created before the container with
 given id or name. For example, having these containers created:
@@ -268,7 +277,7 @@
 6e63f6ff38b0        busybox     "top"         About a minute ago   Up About a minute                      distracted_fermat
 ```
 
-#### Since
+##### since
 
 The `since` filter shows only containers created since the container with given
 id or name. For example, with the same containers as in `before` filter:
@@ -281,12 +290,12 @@
 4aace5031105        busybox     "top"         10 minutes ago      Up 10 minutes                           focused_hamilton
 ```
 
-#### Volume
+#### volume
 
 The `volume` filter shows only containers that mount a specific volume or have
 a volume mounted in a specific path:
 
-```bash{% raw %}
+```bash
 $ docker ps --filter volume=remote-volume --format "table {{.ID}}\t{{.Mounts}}"
 CONTAINER ID        MOUNTS
 9c3527ed70ce        remote-volume
@@ -294,9 +303,9 @@
 $ docker ps --filter volume=/data --format "table {{.ID}}\t{{.Mounts}}"
 CONTAINER ID        MOUNTS
 9c3527ed70ce        remote-volume
-{% endraw %}```
+```
 
-#### Network
+#### network
 
 The `network` filter shows only containers that are connected to a network with
 a given name or id.
@@ -319,9 +328,7 @@
 the network id as a filter;
 
 ```bash
-{% raw %}
 $ docker network inspect --format "{{.ID}}" net1
-{% endraw %}
 
 8c0b4110ae930dbe26b258de9bc34a03f98056ed6f27f991d32919bfe401d7c5
 
@@ -331,7 +338,7 @@
 9d4893ed80fe        ubuntu      "top"         10 minutes ago      Up 10 minutes                           test1
 ```
 
-## Formatting
+### Formatting
 
 The formatting option (`--format`) pretty-prints container output using a Go
 template.
@@ -350,7 +357,7 @@
 `.Size`       | Container disk size.
 `.Names`      | Container names.
 `.Labels`     | All labels assigned to the container.
-`.Label`      | Value of a specific label for this container. For example `'{% raw %}{{.Label "com.docker.swarm.cpu"}}{% endraw %}'`
+`.Label`      | Value of a specific label for this container. For example `'{{.Label "com.docker.swarm.cpu"}}'`
 `.Mounts`     | Names of the volumes mounted in this container.
 `.Networks`   | Names of the networks attached to this container.
 
@@ -362,9 +369,7 @@
 `Command` entries separated by a colon for all running containers:
 
 ```bash
-{% raw %}
 $ docker ps --format "{{.ID}}: {{.Command}}"
-{% endraw %}
 
 a87ecb4f327c: /bin/sh -c #(nop) MA
 01946d9d34d8: /bin/sh -c #(nop) MA
@@ -375,9 +380,7 @@
 To list all running containers with their labels in a table format you can use:
 
 ```bash
-{% raw %}
 $ docker ps --format "table {{.ID}}\t{{.Labels}}"
-{% endraw %}
 
 CONTAINER ID        LABELS
 a87ecb4f327c        com.docker.swarm.node=ubuntu,com.docker.swarm.storage=ssd
diff --git a/docs/reference/commandline/pull.md b/docs/reference/commandline/pull.md
index 0c960b4..7bf3df8 100644
--- a/docs/reference/commandline/pull.md
+++ b/docs/reference/commandline/pull.md
@@ -26,6 +26,8 @@
       --help                    Print usage
 ```
 
+## Description
+
 Most of your images will be created on top of a base image from the
 [Docker Hub](https://hub.docker.com) registry.
 
@@ -35,7 +37,7 @@
 To download a particular image, or set of images (i.e., a repository),
 use `docker pull`.
 
-## Proxy configuration
+### Proxy configuration
 
 If you are behind an HTTP proxy server, for example in corporate settings,
 before open a connect to registry, you may need to configure the Docker
@@ -44,7 +46,7 @@
 `systemd`, refer to the [control and configure Docker with systemd](https://docs.docker.com/engine/admin/systemd/#http-proxy)
 for variables configuration.
 
-## Concurrent downloads
+### Concurrent downloads
 
 By default the Docker daemon will pull three layers of an image at a time.
 If you are on a low bandwidth connection this may cause timeout issues and you may want to lower
@@ -110,7 +112,7 @@
 refer to [understand images, containers, and storage drivers](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/).
 
 
-## Pull an image by digest (immutable identifier)
+### Pull an image by digest (immutable identifier)
 
 So far, you've pulled images by their name (and "tag"). Using names and tags is
 a convenient way to work with images. When using tags, you can `docker pull` an
@@ -175,7 +177,7 @@
 > digest accordingly.
 
 
-## Pulling from a different registry
+### Pull from a different registry
 
 By default, `docker pull` pulls images from [Docker Hub](https://hub.docker.com). It is also possible to
 manually specify the path of a registry to pull from. For example, if you have
@@ -196,7 +198,7 @@
 [insecure registries](dockerd.md#insecure-registries) section for more information.
 
 
-## Pull a repository with multiple images
+### Pull a repository with multiple images
 
 By default, `docker pull` pulls a *single* image from the registry. A repository
 can contain multiple images. To pull all images from a repository, provide the
@@ -231,7 +233,7 @@
 fedora       latest      105182bb5e8b    5 days ago   372.7 MB
 ```
 
-## Canceling a pull
+### Cancel a pull
 
 Killing the `docker pull` process, for example by pressing `CTRL-c` while it is
 running in a terminal, will terminate the pull operation.
diff --git a/docs/reference/commandline/push.md b/docs/reference/commandline/push.md
index e36fd02..d33804d 100644
--- a/docs/reference/commandline/push.md
+++ b/docs/reference/commandline/push.md
@@ -25,6 +25,8 @@
       --help                    Print usage
 ```
 
+## Description
+
 Use `docker push` to share your images to the [Docker Hub](https://hub.docker.com)
 registry or to a self-hosted one.
 
@@ -36,7 +38,7 @@
 
 Registry credentials are managed by [docker login](login.md).
 
-## Concurrent uploads
+### Concurrent uploads
 
 By default the Docker daemon will push five layers of an image at a time.
 If you are on a low bandwidth connection this may cause timeout issues and you may want to lower
@@ -45,7 +47,7 @@
 
 ## Examples
 
-### Pushing a new image to a registry
+### Push a new image to a registry
 
 First save the new image by finding the container ID (using [`docker ps`](ps.md))
 and then committing it to a new image name.  Note that only `a-z0-9-_.` are
@@ -62,6 +64,7 @@
 
 ```bash
 $ docker tag rhel-httpd registry-host:5000/myadmin/rhel-httpd
+
 $ docker push registry-host:5000/myadmin/rhel-httpd
 ```
 
diff --git a/docs/reference/commandline/rename.md b/docs/reference/commandline/rename.md
index be035f1..90268a2 100644
--- a/docs/reference/commandline/rename.md
+++ b/docs/reference/commandline/rename.md
@@ -24,4 +24,12 @@
       --help   Print usage
 ```
 
-The `docker rename` command allows the container to be renamed to a different name.
+## Description
+
+The `docker rename` command renames a container.
+
+## Examples
+
+```bash
+$ docker rename my_container my_new_container
+```
diff --git a/docs/reference/commandline/restart.md b/docs/reference/commandline/restart.md
index 9f7ed00..a2796af 100644
--- a/docs/reference/commandline/restart.md
+++ b/docs/reference/commandline/restart.md
@@ -24,3 +24,9 @@
       --help       Print usage
   -t, --time int   Seconds to wait for stop before killing the container (default 10)
 ```
+
+## Examples
+
+```bash
+$ docker restart my_container
+```
diff --git a/docs/reference/commandline/rm.md b/docs/reference/commandline/rm.md
index 1c3e795..8ee5b28 100644
--- a/docs/reference/commandline/rm.md
+++ b/docs/reference/commandline/rm.md
@@ -29,40 +29,71 @@
 
 ## Examples
 
-    $ docker rm /redis
-    /redis
+### Remove a container
 
 This will remove the container referenced under the link
 `/redis`.
 
-    $ docker rm --link /webapp/redis
-    /webapp/redis
+```bash
+$ docker rm /redis
+
+/redis
+```
+
+### Remove a link specified with `--link` on the default bridge network
 
 This will remove the underlying link between `/webapp` and the `/redis`
-containers removing all network communication.
+containers on the default bridge network, removing all network communication
+between the two containers. This does not apply when `--link` is used with
+user-specified networks.
 
-    $ docker rm --force redis
-    redis
+```bash
+$ docker rm --link /webapp/redis
 
-The main process inside the container referenced under the link `/redis` will receive
+/webapp/redis
+```
+
+### Force-remove a running container
+
+This command will force-remove a running container.
+
+```bash
+$ docker rm --force redis
+
+redis
+```
+
+The main process inside the container referenced under the link `redis` will receive
 `SIGKILL`, then the container will be removed.
 
-    $ docker rm $(docker ps -a -q)
+### Remove all stopped containers
+
+```bash
+$ docker rm $(docker ps -a -q)
+```
 
 This command will delete all stopped containers. The command
 `docker ps -a -q` will return all existing container IDs and pass them to
 the `rm` command which will delete them. Any running containers will not be
 deleted.
 
-    $ docker rm -v redis
-    redis
+### Remove a container and its volumes
+
+```bash
+$ docker rm -v redis
+redis
+```
 
 This command will remove the container and any volumes associated with it.
 Note that if a volume was specified with a name, it will not be removed.
 
-    $ docker create -v awesome:/foo -v /bar --name hello redis
-    hello
-    $ docker rm -v hello
+### Remove a container and selectively remove volumes
+
+```bash
+$ docker create -v awesome:/foo -v /bar --name hello redis
+hello
+$ docker rm -v hello
+```
 
 In this example, the volume for `/foo` will remain intact, but the volume for
 `/bar` will be removed. The same behavior holds for volumes inherited with
diff --git a/docs/reference/commandline/rmi.md b/docs/reference/commandline/rmi.md
index 149b763..28e21d4 100644
--- a/docs/reference/commandline/rmi.md
+++ b/docs/reference/commandline/rmi.md
@@ -26,58 +26,80 @@
       --no-prune   Do not delete untagged parents
 ```
 
+## Examples
+
 You can remove an image using its short or long ID, its tag, or its digest. If
 an image has one or more tag referencing it, you must remove all of them before
 the image is removed. Digest references are removed automatically when an image
 is removed by tag.
 
-    $ docker images
-    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
-    test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
-    test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
-    test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
+```bash
+$ docker images
 
-    $ docker rmi fd484f19954f
-    Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force
-    2013/12/11 05:47:16 Error: failed to remove one or more images
+REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
+test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
+test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
+test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
 
-    $ docker rmi test1
-    Untagged: test1:latest
-    $ docker rmi test2
-    Untagged: test2:latest
+$ docker rmi fd484f19954f
 
-    $ docker images
-    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
-    test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
-    $ docker rmi test
-    Untagged: test:latest
-    Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
+Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force
+2013/12/11 05:47:16 Error: failed to remove one or more images
+
+$ docker rmi test1
+
+Untagged: test1:latest
+
+$ docker rmi test2
+
+Untagged: test2:latest
+
+
+$ docker images
+
+REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
+test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
+
+$ docker rmi test
+
+Untagged: test:latest
+Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
+```
 
 If you use the `-f` flag and specify the image's short or long ID, then this
 command untags and removes all images that match the specified ID.
 
-    $ docker images
-    REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
-    test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
-    test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
-    test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
+```bash
+$ docker images
 
-    $ docker rmi -f fd484f19954f
-    Untagged: test1:latest
-    Untagged: test:latest
-    Untagged: test2:latest
-    Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
+REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
+test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
+test                      latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
+test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
+
+$ docker rmi -f fd484f19954f
+
+Untagged: test1:latest
+Untagged: test:latest
+Untagged: test2:latest
+Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
+```
 
 An image pulled by digest has no tag associated with it:
 
-    $ docker images --digests
-    REPOSITORY                     TAG       DIGEST                                                                    IMAGE ID        CREATED         SIZE
-    localhost:5000/test/busybox    <none>    sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf   4986bf8c1536    9 weeks ago     2.43 MB
+```bash
+$ docker images --digests
+
+REPOSITORY                     TAG       DIGEST                                                                    IMAGE ID        CREATED         SIZE
+localhost:5000/test/busybox    <none>    sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf   4986bf8c1536    9 weeks ago     2.43 MB
+```
 
 To remove an image using its digest:
 
-    $ docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
-    Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
-    Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
-    Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2
-    Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b
+```bash
+$ docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
+Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
+Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
+Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2
+Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b
+```
diff --git a/docs/reference/commandline/run.md b/docs/reference/commandline/run.md
index e57ba4b..920e23f 100644
--- a/docs/reference/commandline/run.md
+++ b/docs/reference/commandline/run.md
@@ -144,6 +144,8 @@
   -w, --workdir string              Working directory inside the container
 ```
 
+## Description
+
 The `docker run` command first `creates` a writeable container layer over the
 specified image, and then `starts` it using the specified command. That is,
 `docker run` is equivalent to the API `/containers/create` then
@@ -160,12 +162,15 @@
 
 ### Assign name and allocate pseudo-TTY (--name, -it)
 
-    $ docker run --name test -it debian
-    root@d6c0fe130dba:/# exit 13
-    $ echo $?
-    13
-    $ docker ps -a | grep test
-    d6c0fe130dba        debian:7            "/bin/bash"         26 seconds ago      Exited (13) 17 seconds ago                         test
+```bash
+$ docker run --name test -it debian
+
+root@d6c0fe130dba:/# exit 13
+$ echo $?
+13
+$ docker ps -a | grep test
+d6c0fe130dba        debian:7            "/bin/bash"         26 seconds ago      Exited (13) 17 seconds ago                         test
+```
 
 This example runs a container named `test` using the `debian:latest`
 image. The `-it` instructs Docker to allocate a pseudo-TTY connected to
@@ -176,7 +181,9 @@
 
 ### Capture container ID (--cidfile)
 
-    $ docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"
+```bash
+$ docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"
+```
 
 This will create a container and print `test` to the console. The `cidfile`
 flag makes Docker attempt to create a new file and write the container ID to it.
@@ -185,19 +192,23 @@
 
 ### Full container capabilities (--privileged)
 
-    $ docker run -t -i --rm ubuntu bash
-    root@bc338942ef20:/# mount -t tmpfs none /mnt
-    mount: permission denied
+```bash
+$ docker run -t -i --rm ubuntu bash
+root@bc338942ef20:/# mount -t tmpfs none /mnt
+mount: permission denied
+```
 
 This will *not* work, because by default, most potentially dangerous kernel
 capabilities are dropped; including `cap_sys_admin` (which is required to mount
 filesystems). However, the `--privileged` flag will allow it to run:
 
-    $ docker run -t -i --privileged ubuntu bash
-    root@50e3f57e16e6:/# mount -t tmpfs none /mnt
-    root@50e3f57e16e6:/# df -h
-    Filesystem      Size  Used Avail Use% Mounted on
-    none            1.9G     0  1.9G   0% /mnt
+```bash
+$ docker run -t -i --privileged ubuntu bash
+root@50e3f57e16e6:/# mount -t tmpfs none /mnt
+root@50e3f57e16e6:/# df -h
+Filesystem      Size  Used Avail Use% Mounted on
+none            1.9G     0  1.9G   0% /mnt
+```
 
 The `--privileged` flag gives *all* capabilities to the container, and it also
 lifts all the limitations enforced by the `device` cgroup controller. In other
@@ -206,14 +217,18 @@
 
 ### Set working directory (-w)
 
-    $ docker  run -w /path/to/dir/ -i -t  ubuntu pwd
+```bash
+$ docker  run -w /path/to/dir/ -i -t  ubuntu pwd
+```
 
 The `-w` lets the command being executed inside directory given, here
 `/path/to/dir/`. If the path does not exist it is created inside the container.
 
 ### Set storage driver options per container
 
-    $ docker run -it --storage-opt size=120G fedora /bin/bash
+```bash
+$ docker run -it --storage-opt size=120G fedora /bin/bash
+```
 
 This (size) will allow to set the container rootfs size to 120G at creation time.
 This option is only available for the `devicemapper`, `btrfs`, `overlay2`,
@@ -226,14 +241,18 @@
 
 ### Mount tmpfs (--tmpfs)
 
-    $ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image
+```bash
+$ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image
+```
 
 The `--tmpfs` flag mounts an empty tmpfs into the container with the `rw`,
 `noexec`, `nosuid`, `size=65536k` options.
 
 ### Mount volume (-v, --read-only)
 
-    $ docker  run  -v `pwd`:`pwd` -w `pwd` -i -t  ubuntu pwd
+```bash
+$ docker  run  -v `pwd`:`pwd` -w `pwd` -i -t  ubuntu pwd
+```
 
 The `-v` flag mounts the current working directory into the container. The `-w`
 lets the command being executed inside the current working directory, by
@@ -241,21 +260,27 @@
 combination executes the command using the container, but inside the
 current working directory.
 
-    $ docker run -v /doesnt/exist:/foo -w /foo -i -t ubuntu bash
+```bash
+$ docker run -v /doesnt/exist:/foo -w /foo -i -t ubuntu bash
+```
 
 When the host directory of a bind-mounted volume doesn't exist, Docker
 will automatically create this directory on the host for you. In the
 example above, Docker will create the `/doesnt/exist`
 folder before starting your container.
 
-    $ docker run --read-only -v /icanwrite busybox touch /icanwrite/here
+```bash
+$ docker run --read-only -v /icanwrite busybox touch /icanwrite/here
+```
 
 Volumes can be used in combination with `--read-only` to control where
 a container writes files. The `--read-only` flag mounts the container's root
 filesystem as read only prohibiting writes to locations other than the
 specified volumes for the container.
 
-    $ docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh
+```bash
+$ docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh
+```
 
 By bind-mounting the docker unix socket and statically linked docker
 binary (refer to [get the linux binary](
@@ -263,45 +288,55 @@
 you give the container the full access to create and manipulate the host's
 Docker daemon.
 
-On Windows, the paths must be specified using Windows-style semantics. 
+On Windows, the paths must be specified using Windows-style semantics.
 
-    PS C:\> docker run -v c:\foo:c:\dest microsoft/nanoserver cmd /s /c type c:\dest\somefile.txt
-    Contents of file
-	
-    PS C:\> docker run -v c:\foo:d: microsoft/nanoserver cmd /s /c type d:\somefile.txt
-    Contents of file
+```powershell
+PS C:\> docker run -v c:\foo:c:\dest microsoft/nanoserver cmd /s /c type c:\dest\somefile.txt
+Contents of file
 
-The following examples will fail when using Windows-based containers, as the 
-destination of a volume or bind-mount inside the container must be one of: 
+PS C:\> docker run -v c:\foo:d: microsoft/nanoserver cmd /s /c type d:\somefile.txt
+Contents of file
+```
+
+The following examples will fail when using Windows-based containers, as the
+destination of a volume or bind-mount inside the container must be one of:
 a non-existing or empty directory; or a drive other than C:. Further, the source
 of a bind mount must be a local directory, not a file.
 
-    net use z: \\remotemachine\share
-    docker run -v z:\foo:c:\dest ...
-    docker run -v \\uncpath\to\directory:c:\dest ...
-    docker run -v c:\foo\somefile.txt:c:\dest ...
-    docker run -v c:\foo:c: ...
-    docker run -v c:\foo:c:\existing-directory-with-contents ...
+```powershell
+net use z: \\remotemachine\share
+docker run -v z:\foo:c:\dest ...
+docker run -v \\uncpath\to\directory:c:\dest ...
+docker run -v c:\foo\somefile.txt:c:\dest ...
+docker run -v c:\foo:c: ...
+docker run -v c:\foo:c:\existing-directory-with-contents ...
+```
 
 For in-depth information about volumes, refer to [manage data in containers](https://docs.docker.com/engine/tutorials/dockervolumes/)
 
 ### Publish or expose port (-p, --expose)
 
-    $ docker run -p 127.0.0.1:80:8080 ubuntu bash
+```bash
+$ docker run -p 127.0.0.1:80:8080 ubuntu bash
+```
 
 This binds port `8080` of the container to port `80` on `127.0.0.1` of the host
 machine. The [Docker User
 Guide](https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/)
 explains in detail how to manipulate ports in Docker.
 
-    $ docker run --expose 80 ubuntu bash
+```bash
+$ docker run --expose 80 ubuntu bash
+```
 
 This exposes port `80` of the container without publishing the port to the host
 system's interfaces.
 
 ### Set environment variables (-e, --env, --env-file)
 
-    $ docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash
+```bash
+$ docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash
+```
 
 This sets simple (non-array) environmental variables in the container. For
 illustration all three
@@ -317,10 +352,12 @@
 first, and then `-e`, `--env` flags. This way, the `-e` or `--env` will
 override variables as needed.
 
-    $ cat ./env.list
-    TEST_FOO=BAR
-    $ docker run --env TEST_FOO="This is a test" --env-file ./env.list busybox env | grep TEST_FOO
-    TEST_FOO=This is a test
+```bash
+$ cat ./env.list
+TEST_FOO=BAR
+$ docker run --env TEST_FOO="This is a test" --env-file ./env.list busybox env | grep TEST_FOO
+TEST_FOO=This is a test
+```
 
 The `--env-file` flag takes a filename as an argument and expects each line
 to be in the `VAR=VAL` format, mimicking the argument passed to `--env`. Comment
@@ -328,53 +365,57 @@
 
 An example of a file passed with `--env-file`
 
-    $ cat ./env.list
-    TEST_FOO=BAR
+```bash
+$ cat ./env.list
+TEST_FOO=BAR
 
-    # this is a comment
-    TEST_APP_DEST_HOST=10.10.0.127
-    TEST_APP_DEST_PORT=8888
-    _TEST_BAR=FOO
-    TEST_APP_42=magic
-    helloWorld=true
-    123qwe=bar
-    org.spring.config=something
+# this is a comment
+TEST_APP_DEST_HOST=10.10.0.127
+TEST_APP_DEST_PORT=8888
+_TEST_BAR=FOO
+TEST_APP_42=magic
+helloWorld=true
+123qwe=bar
+org.spring.config=something
 
-    # pass through this variable from the caller
-    TEST_PASSTHROUGH
-    $ TEST_PASSTHROUGH=howdy docker run --env-file ./env.list busybox env
-    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-    HOSTNAME=5198e0745561
-    TEST_FOO=BAR
-    TEST_APP_DEST_HOST=10.10.0.127
-    TEST_APP_DEST_PORT=8888
-    _TEST_BAR=FOO
-    TEST_APP_42=magic
-    helloWorld=true
-    TEST_PASSTHROUGH=howdy
-    HOME=/root
-    123qwe=bar
-    org.spring.config=something
+# pass through this variable from the caller
+TEST_PASSTHROUGH
+$ TEST_PASSTHROUGH=howdy docker run --env-file ./env.list busybox env
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+HOSTNAME=5198e0745561
+TEST_FOO=BAR
+TEST_APP_DEST_HOST=10.10.0.127
+TEST_APP_DEST_PORT=8888
+_TEST_BAR=FOO
+TEST_APP_42=magic
+helloWorld=true
+TEST_PASSTHROUGH=howdy
+HOME=/root
+123qwe=bar
+org.spring.config=something
 
-    $ docker run --env-file ./env.list busybox env
-    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-    HOSTNAME=5198e0745561
-    TEST_FOO=BAR
-    TEST_APP_DEST_HOST=10.10.0.127
-    TEST_APP_DEST_PORT=8888
-    _TEST_BAR=FOO
-    TEST_APP_42=magic
-    helloWorld=true
-    TEST_PASSTHROUGH=
-    HOME=/root
-    123qwe=bar
-    org.spring.config=something
+$ docker run --env-file ./env.list busybox env
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+HOSTNAME=5198e0745561
+TEST_FOO=BAR
+TEST_APP_DEST_HOST=10.10.0.127
+TEST_APP_DEST_PORT=8888
+_TEST_BAR=FOO
+TEST_APP_42=magic
+helloWorld=true
+TEST_PASSTHROUGH=
+HOME=/root
+123qwe=bar
+org.spring.config=something
+```
 
 ### Set metadata on container (-l, --label, --label-file)
 
 A label is a `key=value` pair that applies metadata to a container. To label a container with two labels:
 
-    $ docker run -l my-label --label com.example.foo=bar ubuntu bash
+```bash
+$ docker run -l my-label --label com.example.foo=bar ubuntu bash
+```
 
 The `my-label` key doesn't specify a value so the label defaults to an empty
 string(`""`). To add multiple labels, repeat the label flag (`-l` or `--label`).
@@ -387,18 +428,22 @@
 label in the file with an EOL mark. The example below loads labels from a
 labels file in the current directory:
 
-    $ docker run --label-file ./labels ubuntu bash
+```bash
+$ docker run --label-file ./labels ubuntu bash
+```
 
 The label-file format is similar to the format for loading environment
 variables. (Unlike environment variables, labels are not visible to processes
 running inside a container.) The following example illustrates a label-file
 format:
 
-    com.example.label1="a label"
+```none
+com.example.label1="a label"
 
-    # this is a comment
-    com.example.label2=another\ label
-    com.example.label3
+# this is a comment
+com.example.label2=another\ label
+com.example.label3
+```
 
 You can load multiple label-files by supplying multiple  `--label-file` flags.
 
@@ -430,16 +475,18 @@
 connectivity, containers connected to the same multi-host network but launched
 from different Engines can also communicate in this way.
 
-**Note**: Service discovery is unavailable on the default bridge network.
-Containers can communicate via their IP addresses by default. To communicate
-by name, they must be linked.
+> **Note**: Service discovery is unavailable on the default bridge network.
+> Containers can communicate via their IP addresses by default. To communicate
+> by name, they must be linked.
 
 You can disconnect a container from a network using the `docker network
 disconnect` command.
 
 ### Mount volumes from container (--volumes-from)
 
-    $ docker run --volumes-from 777f7dc92da7 --volumes-from ba8c0c54f0f2:ro -i -t ubuntu pwd
+```bash
+$ docker run --volumes-from 777f7dc92da7 --volumes-from ba8c0c54f0f2:ro -i -t ubuntu pwd
+```
 
 The `--volumes-from` flag mounts all the defined volumes from the referenced
 containers. Containers can be specified by repetitions of the `--volumes-from`
@@ -467,18 +514,24 @@
 or `STDERR`. This makes it possible to manipulate the output and input as
 needed.
 
-    $ echo "test" | docker run -i -a stdin ubuntu cat -
+```bash
+$ echo "test" | docker run -i -a stdin ubuntu cat -
+```
 
 This pipes data into a container and prints the container's ID by attaching
 only to the container's `STDIN`.
 
-    $ docker run -a stderr ubuntu echo test
+```bash
+$ docker run -a stderr ubuntu echo test
+```
 
 This isn't going to print anything unless there's an error because we've
 only attached to the `STDERR` of the container. The container's logs
 still store what's been written to `STDERR` and `STDOUT`.
 
-    $ cat somefile | docker run -i -a stdin mybuilder dobuild
+```bash
+$ cat somefile | docker run -i -a stdin mybuilder dobuild
+```
 
 This is how piping a file into a container could be done for a build.
 The container's ID will be printed after the build is done and the build
@@ -488,10 +541,16 @@
 
 ### Add host device to container (--device)
 
-    $ docker run --device=/dev/sdc:/dev/xvdc --device=/dev/sdd --device=/dev/zero:/dev/nulo -i -t ubuntu ls -l /dev/{xvdc,sdd,nulo}
-    brw-rw---- 1 root disk 8, 2 Feb  9 16:05 /dev/xvdc
-    brw-rw---- 1 root disk 8, 3 Feb  9 16:05 /dev/sdd
-    crw-rw-rw- 1 root root 1, 5 Feb  9 16:05 /dev/nulo
+```bash
+$ docker run --device=/dev/sdc:/dev/xvdc \
+             --device=/dev/sdd --device=/dev/zero:/dev/nulo \
+             -i -t \
+             ubuntu ls -l /dev/{xvdc,sdd,nulo}
+
+brw-rw---- 1 root disk 8, 2 Feb  9 16:05 /dev/xvdc
+brw-rw---- 1 root disk 8, 3 Feb  9 16:05 /dev/sdd
+crw-rw-rw- 1 root root 1, 5 Feb  9 16:05 /dev/nulo
+```
 
 It is often necessary to directly expose devices to a container. The `--device`
 option enables that. For example, a specific block storage device or loop
@@ -502,24 +561,24 @@
 This can be overridden using a third `:rwm` set of options to each `--device`
 flag:
 
+```bash
+$ docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk  /dev/xvdc
 
-    $ docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk  /dev/xvdc
+Command (m for help): q
+$ docker run --device=/dev/sda:/dev/xvdc:r --rm -it ubuntu fdisk  /dev/xvdc
+You will not be able to write the partition table.
 
-    Command (m for help): q
-    $ docker run --device=/dev/sda:/dev/xvdc:r --rm -it ubuntu fdisk  /dev/xvdc
-    You will not be able to write the partition table.
+Command (m for help): q
 
-    Command (m for help): q
+$ docker run --device=/dev/sda:/dev/xvdc:rw --rm -it ubuntu fdisk  /dev/xvdc
 
-    $ docker run --device=/dev/sda:/dev/xvdc:rw --rm -it ubuntu fdisk  /dev/xvdc
+Command (m for help): q
 
-    Command (m for help): q
+$ docker run --device=/dev/sda:/dev/xvdc:m --rm -it ubuntu fdisk  /dev/xvdc
+fdisk: unable to open /dev/xvdc: Operation not permitted
+```
 
-    $ docker run --device=/dev/sda:/dev/xvdc:m --rm -it ubuntu fdisk  /dev/xvdc
-    fdisk: unable to open /dev/xvdc: Operation not permitted
-
-> **Note:**
-> `--device` cannot be safely used with ephemeral devices. Block devices
+> **Note**: `--device` cannot be safely used with ephemeral devices. Block devices
 > that may be removed should not be added to untrusted containers with
 > `--device`.
 
@@ -529,54 +588,15 @@
 policy controls whether the Docker daemon restarts a container after exit.
 Docker supports the following restart policies:
 
-<table>
-  <thead>
-    <tr>
-      <th>Policy</th>
-      <th>Result</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td><strong>no</strong></td>
-      <td>
-        Do not automatically restart the container when it exits. This is the
-        default.
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <span style="white-space: nowrap">
-          <strong>on-failure</strong>[:max-retries]
-        </span>
-      </td>
-      <td>
-        Restart only if the container exits with a non-zero exit status.
-        Optionally, limit the number of restart retries the Docker
-        daemon attempts.
-      </td>
-    </tr>
-    <tr>
-      <td><strong>always</strong></td>
-      <td>
-        Always restart the container regardless of the exit status.
-        When you specify always, the Docker daemon will try to restart
-        the container indefinitely. The container will also always start
-        on daemon startup, regardless of the current state of the container.
-      </td>
-    </tr>
-    <tr>
-      <td><strong>unless-stopped</strong></td>
-      <td>
-        Always restart the container regardless of the exit status, but
-        do not start it on daemon startup if the container has been put
-        to a stopped state before.
-      </td>
-    </tr>
-  </tbody>
-</table>
+| Policy            | Result                                  |
+|-------------------|-----------------------------------------|
+| `no`              | Do not automatically restart the container when it exits. This is the default. |
+| `failure`         | Restart only if the container exits with a non-zero exit status. Optionally, limit the number of restart retries the Docker daemon attempts. |
+| `always`          | Always restart the container regardless of the exit status. When you specify always, the Docker daemon will try to restart the container indefinitely. The container will also always start on daemon startup, regardless of the current state of the container. |
 
-    $ docker run --restart=always redis
+```bash
+$ docker run --restart=always redis
+```
 
 This will run the `redis` container with a restart policy of **always**
 so that if the container exits, Docker will restart it.
@@ -591,14 +611,17 @@
 more `--add-host` flags. This example adds a static address for a host named
 `docker`:
 
-    $ docker run --add-host=docker:10.180.0.1 --rm -it debian
-    root@f38c87f2a42d:/# ping docker
-    PING docker (10.180.0.1): 48 data bytes
-    56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms
-    56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms
-    ^C--- docker ping statistics ---
-    2 packets transmitted, 2 packets received, 0% packet loss
-    round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms
+```bash
+$ docker run --add-host=docker:10.180.0.1 --rm -it debian
+
+root@f38c87f2a42d:/# ping docker
+PING docker (10.180.0.1): 48 data bytes
+56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms
+56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms
+^C--- docker ping statistics ---
+2 packets transmitted, 2 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms
+```
 
 Sometimes you need to connect to the Docker host from within your
 container. To enable this, pass the Docker host's IP address to
@@ -609,8 +632,10 @@
 using IPv4 or IPv6 networking in your containers. Use the following
 flags for IPv4 address retrieval for a network device named `eth0`:
 
-    $ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1`
-    $ docker run  --add-host=docker:${HOSTIP} --rm -it debian
+```bash
+$ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1`
+$ docker run  --add-host=docker:${HOSTIP} --rm -it debian
+```
 
 For IPv6 use the `-6` flag instead of the `-4` flag. For other network
 devices, replace `eth0` with the correct device name (for example `docker0`
@@ -623,15 +648,19 @@
 `--ulimit` is specified with a soft and hard limit as such:
 `<type>=<soft limit>[:<hard limit>]`, for example:
 
-    $ docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n"
-    1024
+```bash
+$ docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n"
+1024
+```
 
-> **Note:**
-> If you do not provide a `hard limit`, the `soft limit` will be used
+> **Note**: If you do not provide a `hard limit`, the `soft limit` will be used
 > for both values. If no `ulimits` are set, they will be inherited from
 > the default `ulimits` set on the daemon.  `as` option is disabled now.
 > In other words, the following script is not supported:
-> `$ docker run -it --ulimit as=1024 fedora /bin/bash`
+>
+> ```bash
+> $ docker run -it --ulimit as=1024 fedora /bin/bash`
+> ```
 
 The values are sent to the appropriate `syscall` as they are set.
 Docker doesn't perform any byte conversion. Take this into account when setting the values.
@@ -642,10 +671,15 @@
 maximum number of processes available to a user, not to a container.  For example, start four
 containers with `daemon` user:
 
-    docker run -d -u daemon --ulimit nproc=3 busybox top
-    docker run -d -u daemon --ulimit nproc=3 busybox top
-    docker run -d -u daemon --ulimit nproc=3 busybox top
-    docker run -d -u daemon --ulimit nproc=3 busybox top
+```bash
+$ docker run -d -u daemon --ulimit nproc=3 busybox top
+
+$ docker run -d -u daemon --ulimit nproc=3 busybox top
+
+$ docker run -d -u daemon --ulimit nproc=3 busybox top
+
+$ docker run -d -u daemon --ulimit nproc=3 busybox top
+```
 
 The 4th container fails and reports "[8] System error: resource temporarily unavailable" error.
 This fails because the caller set `nproc=3` resulting in the first three containers using up
@@ -710,8 +744,9 @@
 container. For example, to turn on IP forwarding in the containers
 network namespace, run this command:
 
-    $ docker run --sysctl net.ipv4.ip_forward=1 someimage
-
+```bash
+$ docker run --sysctl net.ipv4.ip_forward=1 someimage
+```
 
 > **Note**: Not all sysctls are namespaced. Docker does not support changing sysctls
 > inside of a container that also modify the host system. As the kernel
@@ -719,14 +754,17 @@
 
 #### Currently supported sysctls
 
-  `IPC Namespace`:
+- `IPC Namespace`:
 
+  ```none
   kernel.msgmax, kernel.msgmnb, kernel.msgmni, kernel.sem, kernel.shmall, kernel.shmmax, kernel.shmmni, kernel.shm_rmid_forced
   Sysctls beginning with fs.mqueue.*
+  ```
 
   If you use the `--ipc=host` option these sysctls will not be allowed.
 
-  `Network Namespace`:
-      Sysctls beginning with net.*
+- `Network Namespace`:
+
+  Sysctls beginning with net.*
 
   If you use the `--network=host` option using these sysctls will not be allowed.
diff --git a/docs/reference/commandline/save.md b/docs/reference/commandline/save.md
index 88a5fed..cba7385 100644
--- a/docs/reference/commandline/save.md
+++ b/docs/reference/commandline/save.md
@@ -25,21 +25,38 @@
   -o, --output string   Write to a file, instead of STDOUT
 ```
 
+## Description
+
 Produces a tarred repository to the standard output stream.
 Contains all parent layers, and all tags + versions, or specified `repo:tag`, for
 each argument provided.
 
-It is used to create a backup that can then be used with `docker load`
+## Examples
 
-    $ docker save busybox > busybox.tar
-    $ ls -sh busybox.tar
-    2.7M busybox.tar
-    $ docker save --output busybox.tar busybox
-    $ ls -sh busybox.tar
-    2.7M busybox.tar
-    $ docker save -o fedora-all.tar fedora
-    $ docker save -o fedora-latest.tar fedora:latest
+### Create a backup that can then be used with `docker load`.
 
-It is even useful to cherry-pick particular tags of an image repository
+```bash
+$ docker save busybox > busybox.tar
 
-    $ docker save -o ubuntu.tar ubuntu:lucid ubuntu:saucy
+$ ls -sh busybox.tar
+
+2.7M busybox.tar
+
+$ docker save --output busybox.tar busybox
+
+$ ls -sh busybox.tar
+
+2.7M busybox.tar
+
+$ docker save -o fedora-all.tar fedora
+
+$ docker save -o fedora-latest.tar fedora:latest
+```
+
+### Cherry-pick particular tags
+
+You can even cherry-pick particular tags of an image repository.
+
+```bash
+$ docker save -o ubuntu.tar ubuntu:lucid ubuntu:saucy
+```
diff --git a/docs/reference/commandline/search.md b/docs/reference/commandline/search.md
index 31faf37..f645c78 100644
--- a/docs/reference/commandline/search.md
+++ b/docs/reference/commandline/search.md
@@ -30,13 +30,14 @@
       --no-trunc       Don't truncate output
 ```
 
+## Description
+
 Search [Docker Hub](https://hub.docker.com) for images
 
 See [*Find Public Images on Docker Hub*](https://docs.docker.com/engine/tutorials/dockerrepos/#searching-for-images) for
 more details on finding shared images from the command line.
 
-> **Note:**
-> Search queries will only return up to 25 results
+> **Note**: Search queries return a maximum of 25 results.
 
 ## Examples
 
@@ -44,52 +45,57 @@
 
 This example displays images with a name containing 'busybox':
 
-    $ docker search busybox
-    NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
-    busybox                          Busybox base image.                             316       [OK]       
-    progrium/busybox                                                                 50                   [OK]
-    radial/busyboxplus               Full-chain, Internet enabled, busybox made...   8                    [OK]
-    odise/busybox-python                                                             2                    [OK]
-    azukiapp/busybox                 This image is meant to be used as the base...   2                    [OK]
-    ofayau/busybox-jvm               Prepare busybox to install a 32 bits JVM.       1                    [OK]
-    shingonoide/archlinux-busybox    Arch Linux, a lightweight and flexible Lin...   1                    [OK]
-    odise/busybox-curl                                                               1                    [OK]
-    ofayau/busybox-libc32            Busybox with 32 bits (and 64 bits) libs         1                    [OK]
-    peelsky/zulu-openjdk-busybox                                                     1                    [OK]
-    skomma/busybox-data              Docker image suitable for data volume cont...   1                    [OK]
-    elektritter/busybox-teamspeak    Lightweight teamspeak3 container based on...    1                    [OK]
-    socketplane/busybox                                                              1                    [OK]
-    oveits/docker-nginx-busybox      This is a tiny NginX docker image based on...   0                    [OK]
-    ggtools/busybox-ubuntu           Busybox ubuntu version with extra goodies       0                    [OK]
-    nikfoundas/busybox-confd         Minimal busybox based distribution of confd     0                    [OK]
-    openshift/busybox-http-app                                                       0                    [OK]
-    jllopis/busybox                                                                  0                    [OK]
-    swyckoff/busybox                                                                 0                    [OK]
-    powellquiring/busybox                                                            0                    [OK]
-    williamyeh/busybox-sh            Docker image for BusyBox's sh                   0                    [OK]
-    simplexsys/busybox-cli-powered   Docker busybox images, with a few often us...   0                    [OK]
-    fhisamoto/busybox-java           Busybox java                                    0                    [OK]
-    scottabernethy/busybox                                                           0                    [OK]
-    marclop/busybox-solr
+```none
+$ docker search busybox
+
+NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
+busybox                          Busybox base image.                             316       [OK]       
+progrium/busybox                                                                 50                   [OK]
+radial/busyboxplus               Full-chain, Internet enabled, busybox made...   8                    [OK]
+odise/busybox-python                                                             2                    [OK]
+azukiapp/busybox                 This image is meant to be used as the base...   2                    [OK]
+ofayau/busybox-jvm               Prepare busybox to install a 32 bits JVM.       1                    [OK]
+shingonoide/archlinux-busybox    Arch Linux, a lightweight and flexible Lin...   1                    [OK]
+odise/busybox-curl                                                               1                    [OK]
+ofayau/busybox-libc32            Busybox with 32 bits (and 64 bits) libs         1                    [OK]
+peelsky/zulu-openjdk-busybox                                                     1                    [OK]
+skomma/busybox-data              Docker image suitable for data volume cont...   1                    [OK]
+elektritter/busybox-teamspeak    Lightweight teamspeak3 container based on...    1                    [OK]
+socketplane/busybox                                                              1                    [OK]
+oveits/docker-nginx-busybox      This is a tiny NginX docker image based on...   0                    [OK]
+ggtools/busybox-ubuntu           Busybox ubuntu version with extra goodies       0                    [OK]
+nikfoundas/busybox-confd         Minimal busybox based distribution of confd     0                    [OK]
+openshift/busybox-http-app                                                       0                    [OK]
+jllopis/busybox                                                                  0                    [OK]
+swyckoff/busybox                                                                 0                    [OK]
+powellquiring/busybox                                                            0                    [OK]
+williamyeh/busybox-sh            Docker image for BusyBox's sh                   0                    [OK]
+simplexsys/busybox-cli-powered   Docker busybox images, with a few often us...   0                    [OK]
+fhisamoto/busybox-java           Busybox java                                    0                    [OK]
+scottabernethy/busybox                                                           0                    [OK]
+marclop/busybox-solr
+```
 
 ### Display non-truncated description (--no-trunc)
 
 This example displays images with a name containing 'busybox',
 at least 3 stars and the description isn't truncated in the output:
 
-    $ docker search --stars=3 --no-trunc busybox
-    NAME                 DESCRIPTION                                                                               STARS     OFFICIAL   AUTOMATED
-    busybox              Busybox base image.                                                                       325       [OK]       
-    progrium/busybox                                                                                               50                   [OK]
-    radial/busyboxplus   Full-chain, Internet enabled, busybox made from scratch. Comes in git and cURL flavors.   8                    [OK]
+```bash
+$ docker search --stars=3 --no-trunc busybox
+NAME                 DESCRIPTION                                                                               STARS     OFFICIAL   AUTOMATED
+busybox              Busybox base image.                                                                       325       [OK]       
+progrium/busybox                                                                                               50                   [OK]
+radial/busyboxplus   Full-chain, Internet enabled, busybox made from scratch. Comes in git and cURL flavors.   8                    [OK]
+```
 
-## Limit search results (--limit)
+### Limit search results (--limit)
 
 The flag `--limit` is the maximum number of results returned by a search. This value could
 be in the range between 1 and 100. The default value of `--limit` is 25.
 
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there is more
 than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`)
@@ -101,34 +107,43 @@
 * is-official (true|false) - is the image official or not
 
 
-### stars
+#### stars
 
 This example displays images with a name containing 'busybox' and at
 least 3 stars:
 
-    $ docker search --filter stars=3 busybox
-    NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
-    busybox              Busybox base image.                             325       [OK]       
-    progrium/busybox                                                     50                   [OK]
-    radial/busyboxplus   Full-chain, Internet enabled, busybox made...   8                    [OK]
+```bash
+$ docker search --filter stars=3 busybox
+
+NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
+busybox              Busybox base image.                             325       [OK]       
+progrium/busybox                                                     50                   [OK]
+radial/busyboxplus   Full-chain, Internet enabled, busybox made...   8                    [OK]
+```
 
 
-### is-automated
+#### is-automated
 
 This example displays images with a name containing 'busybox'
 and are automated builds:
 
-    $ docker search --filter is-automated busybox
-    NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
-    progrium/busybox                                                     50                   [OK]
-    radial/busyboxplus   Full-chain, Internet enabled, busybox made...   8                    [OK]
+```bash
+$ docker search --filter is-automated busybox
 
-### is-official
+NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
+progrium/busybox                                                     50                   [OK]
+radial/busyboxplus   Full-chain, Internet enabled, busybox made...   8                    [OK]
+```
+
+#### is-official
 
 This example displays images with a name containing 'busybox', at least
 3 stars and are official builds:
 
-    $ docker search --filter "is-official=true" --filter "stars=3" busybox
-    NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
-    progrium/busybox                                                     50                   [OK]
-    radial/busyboxplus   Full-chain, Internet enabled, busybox made...   8                    [OK]
+```bash
+$ docker search --filter "is-official=true" --filter "stars=3" busybox
+
+NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
+progrium/busybox                                                     50                   [OK]
+radial/busyboxplus   Full-chain, Internet enabled, busybox made...   8                    [OK]
+```
diff --git a/docs/reference/commandline/secret_create.md b/docs/reference/commandline/secret_create.md
index aebcebb..74839f7 100644
--- a/docs/reference/commandline/secret_create.md
+++ b/docs/reference/commandline/secret_create.md
@@ -25,6 +25,8 @@
   -l, --label list    Secret labels (default [])
 ```
 
+## Description
+
 Creates a secret using standard input or from a file for the secret content. You must run this
 command on a manager node.
 
@@ -45,9 +47,11 @@
 
 ```bash
 $ docker secret create my_secret ./secret.json
+
 mhv17xfe3gh6xc4rij5orpfds
 
 $ docker secret ls
+
 ID                          NAME                    CREATED                                   UPDATED                                   SIZE
 mhv17xfe3gh6xc4rij5orpfds   my_secret               2016-10-27 23:25:43.909181089 +0000 UTC   2016-10-27 23:25:43.909181089 +0000 UTC   1679
 ```
@@ -55,10 +59,16 @@
 ### Create a secret with labels
 
 ```bash
-$ docker secret create --label env=dev --label rev=20161102 my_secret ./secret.json
-jtn7g6aukl5ky7nr9gvwafoxh
+$ docker secret create --label env=dev \
+                       --label rev=20161102 \
+                       my_secret ./secret.json
 
+jtn7g6aukl5ky7nr9gvwafoxh
+```
+
+```none
 $ docker secret inspect my_secret
+
 [
     {
         "ID": "jtn7g6aukl5ky7nr9gvwafoxh",
@@ -79,11 +89,10 @@
         "SecretSize": 1679
     }
 ]
-
 ```
 
 
-## Related information
+## Related commands
 
 * [secret inspect](secret_inspect.md)
 * [secret ls](secret_ls.md)
diff --git a/docs/reference/commandline/secret_inspect.md b/docs/reference/commandline/secret_inspect.md
index de878f7..098274e 100644
--- a/docs/reference/commandline/secret_inspect.md
+++ b/docs/reference/commandline/secret_inspect.md
@@ -25,6 +25,7 @@
       --help            Print usage
 ```
 
+## Description
 
 Inspects the specified secret. This command has to be run targeting a manager
 node.
@@ -37,7 +38,7 @@
 
 ## Examples
 
-### Inspecting a secret by name or ID
+### Inspect a secret by name or ID
 
 You can inspect a secret, either by its *name*, or *ID*
 
@@ -49,8 +50,9 @@
 mhv17xfe3gh6xc4rij5orpfds   secret.json             2016-10-27 23:25:43.909181089 +0000 UTC   2016-10-27 23:25:43.909181089 +0000 UTC
 ```
 
-```bash
+```none
 $ docker secret inspect secret.json
+
 [
     {
         "ID": "mhv17xfe3gh6xc4rij5orpfds",
@@ -66,19 +68,20 @@
 ]
 ```
 
-### Formatting secret output
+### Formatting
 
 You can use the --format option to obtain specific information about a
 secret. The following example command outputs the creation time of the
 secret.
 
-```bash{% raw %}
+```bash
 $ docker secret inspect --format='{{.CreatedAt}}' mhv17xfe3gh6xc4rij5orpfds
+
 2016-10-27 23:25:43.909181089 +0000 UTC
-{% endraw %}```
+```
 
 
-## Related information
+## Related commands
 
 * [secret create](secret_create.md)
 * [secret ls](secret_ls.md)
diff --git a/docs/reference/commandline/secret_ls.md b/docs/reference/commandline/secret_ls.md
index 6b34fc2..72b9e46 100644
--- a/docs/reference/commandline/secret_ls.md
+++ b/docs/reference/commandline/secret_ls.md
@@ -27,16 +27,20 @@
   -q, --quiet          Only display IDs
 ```
 
-Run this command on a manager node to list the secrets in the Swarm.
+## Description
+
+Run this command on a manager node to list the secrets in the swarm.
 
 ## Examples
 
 ```bash
 $ docker secret ls
+
 ID                          NAME                    CREATED                                   UPDATED
 mhv17xfe3gh6xc4rij5orpfds   secret.json             2016-10-27 23:25:43.909181089 +0000 UTC   2016-10-27 23:25:43.909181089 +0000 UTC
 ```
-## Related information
+
+## Related commands
 
 * [secret create](secret_create.md)
 * [secret inspect](secret_inspect.md)
diff --git a/docs/reference/commandline/secret_rm.md b/docs/reference/commandline/secret_rm.md
index f504b1b..9887d33 100644
--- a/docs/reference/commandline/secret_rm.md
+++ b/docs/reference/commandline/secret_rm.md
@@ -27,9 +27,13 @@
       --help   Print usage
 ```
 
+## Description
+
 Removes the specified secrets from the swarm. This command has to be run
 targeting a manager node.
 
+## Examples
+
 This example removes a secret:
 
 ```bash
@@ -41,7 +45,7 @@
 > before removing a secret.
 
 
-## Related information
+## Related commands
 
 * [secret create](secret_create.md)
 * [secret inspect](secret_inspect.md)
diff --git a/docs/reference/commandline/service_create.md b/docs/reference/commandline/service_create.md
index c9e2980..33fe24b 100644
--- a/docs/reference/commandline/service_create.md
+++ b/docs/reference/commandline/service_create.md
@@ -68,6 +68,8 @@
   -w, --workdir string                   Working directory inside the container
 ```
 
+## Description
+
 Creates a service as described by the specified parameters. You must run this
 command on a manager node.
 
@@ -77,12 +79,15 @@
 
 ```bash
 $ docker service create --name redis redis:3.0.6
+
 dmu1ept4cxcfe8k8lhtux3ro3
 
 $ docker service create --mode global --name redis2 redis:3.0.6
+
 a8q9dasaafudfs8q8w32udass
 
 $ docker service ls
+
 ID            NAME    MODE        REPLICAS  IMAGE
 dmu1ept4cxcf  redis   replicated  1/1       redis:3.0.6
 a8q9dasaafud  redis2  global      1/1       redis:3.0.6
@@ -95,6 +100,7 @@
 
 ```bash
 $ docker service create --name redis --replicas=5 redis:3.0.6
+
 4cdgfyky7ozwh3htjfw0d12qv
 ```
 
@@ -108,6 +114,7 @@
 
 ```bash
 $ docker service ls
+
 ID            NAME   MODE        REPLICAS  IMAGE
 4cdgfyky7ozw  redis  replicated  3/5       redis:3.0.7
 ```
@@ -117,11 +124,13 @@
 
 ```bash
 $ docker service ls
+
 ID            NAME   MODE        REPLICAS  IMAGE
 4cdgfyky7ozw  redis  replicated  5/5       redis:3.0.7
 ```
 
 ### Create a service with secrets
+
 Use the `--secret` flag to give a container access to a
 [secret](secret_create.md).
 
@@ -129,6 +138,7 @@
 
 ```bash
 $ docker service create --name redis --secret secret.json redis:3.0.6
+
 4cdgfyky7ozwh3htjfw0d12qv
 ```
 
@@ -139,6 +149,7 @@
     --secret source=ssh-key,target=ssh \
     --secret source=app-key,target=app,uid=1000,gid=1001,mode=0400 \
     redis:3.0.6
+
 4cdgfyky7ozwh3htjfw0d12qv
 ```
 
@@ -172,12 +183,15 @@
 $ docker service create --name redis_2 --replicas 5 --env MYVAR=foo redis:3.0.6
 ```
 
-### Create a docker service with specific hostname (--hostname)
+### Create a service with specific hostname (--hostname)
 
-This option sets the docker service containers hostname to a specific string. For example:
+This option sets the docker service containers hostname to a specific string.
+For example:
+
 ```bash
 $ docker service create --name redis --hostname myredis redis:3.0.6
 ```
+
 ### Set metadata on a service (-l, --label)
 
 A label is a `key=value` pair that applies metadata to a service. To label a
@@ -201,7 +215,7 @@
 system. These types are _data volumes_ (often referred to simply as volumes) and
 _bind-mounts_.
 
-Additionally, Docker also supports tmpfs mounts.
+Additionally, Docker supports `tmpfs` mounts.
 
 A **bind-mount** makes a file or directory on the host available to the
 container it is mounted within. A bind-mount may be either read-only or
@@ -303,19 +317,19 @@
 or `--volume` flag for `docker run`, with some important exceptions:
 
 - The `--mount` flag allows you to specify a volume driver and volume driver
-    options *per volume*, without creating the volumes in advance. In contrast,
-    `docker run` allows you to specify a single volume driver which is shared
-    by all volumes, using the `--volume-driver` flag.
+  options *per volume*, without creating the volumes in advance. In contrast,
+  `docker run` allows you to specify a single volume driver which is shared
+  by all volumes, using the `--volume-driver` flag.
 
 - The `--mount` flag allows you to specify custom metadata ("labels") for a volume,
-    before the volume is created.
+  before the volume is created.
 
 - When you use `--mount` with `type=bind`, the host-path must refer to an *existing*
-    path on the host. The path will not be created for you and the service will fail
-    with an error if the path does not exist.
+  path on the host. The path will not be created for you and the service will fail
+  with an error if the path does not exist.
 
 - The `--mount` flag does not allow you to relabel a volume with `Z` or `z` flags,
-    which are used for `selinux` labeling.
+  which are used for `selinux` labeling.
 
 #### Create a service using a named volume
 
@@ -532,18 +546,23 @@
 service's name and the node's ID where it sits.
 
 ```bash
-$ docker service create --name hosttempl --hostname={% raw %}"{{.Node.ID}}-{{.Service.Name}}"{% endraw %} busybox top
+$ docker service create --name hosttempl \
+                        --hostname="{{.Node.ID}}-{{.Service.Name}}"\
+                         busybox top
+
 va8ew30grofhjoychbr6iot8c
 
 $ docker service ps va8ew30grofhjoychbr6iot8c
+
 ID            NAME         IMAGE                                                                                   NODE          DESIRED STATE  CURRENT STATE               ERROR  PORTS
 wo41w8hg8qan  hosttempl.1  busybox:latest@sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912  2e7a8a9c4da2  Running        Running about a minute ago
 
-$ docker inspect --format={% raw %}"{{.Config.Hostname}}"{% endraw %} hosttempl.1.wo41w8hg8qanxwjwsg4kxpprj
+$ docker inspect --format="{{.Config.Hostname}}" hosttempl.1.wo41w8hg8qanxwjwsg4kxpprj
+
 x3ti0erg11rjpg64m75kej2mz-hosttempl
 ```
 
-## Related information
+## Related commands
 
 * [service inspect](service_inspect.md)
 * [service logs](service_logs.md)
diff --git a/docs/reference/commandline/service_inspect.md b/docs/reference/commandline/service_inspect.md
index 8b4ab62..b2088d2 100644
--- a/docs/reference/commandline/service_inspect.md
+++ b/docs/reference/commandline/service_inspect.md
@@ -26,6 +26,7 @@
       --pretty          Print the information in a human friendly format.
 ```
 
+## Description
 
 Inspects the specified service. This command has to be run targeting a manager
 node.
@@ -38,7 +39,7 @@
 
 ## Examples
 
-### Inspecting a service  by name or ID
+### Inspect a service by name or ID
 
 You can inspect a service, either by its *name*, or *ID*
 
@@ -53,8 +54,9 @@
 Both `docker service inspect redis`, and `docker service inspect dmu1ept4cxcf`
 produce the same result:
 
-```bash
+```none
 $ docker service inspect redis
+
 [
     {
         "ID": "dmu1ept4cxcfe8k8lhtux3ro3",
@@ -98,6 +100,7 @@
 
 ```bash
 $ docker service inspect dmu1ept4cxcf
+
 [
     {
         "ID": "dmu1ept4cxcfe8k8lhtux3ro3",
@@ -109,13 +112,14 @@
 ]
 ```
 
-### Inspect a service using pretty-print
+### Formatting
 
 You can print the inspect output in a human-readable format instead of the default
 JSON output, by using the `--pretty` option:
 
 ```bash
 $ docker service inspect --pretty frontend
+
 ID:		c8wgl7q4ndfd52ni6qftkvnnp
 Name:		frontend
 Labels:
@@ -139,19 +143,20 @@
 You can also use `--format pretty` for the same effect.
 
 
-### Finding the number of tasks running as part of a service
+#### Find the number of tasks running as part of a service
 
 The `--format` option can be used to obtain specific information about a
 service. For example, the following command outputs the number of replicas
 of the "redis" service.
 
-```bash{% raw %}
+```bash
 $ docker service inspect --format='{{.Spec.Mode.Replicated.Replicas}}' redis
+
 10
-{% endraw %}```
+```
 
 
-## Related information
+## Related commands
 
 * [service create](service_create.md)
 * [service logs](service_logs.md)
diff --git a/docs/reference/commandline/service_logs.md b/docs/reference/commandline/service_logs.md
index fdf6a3a..844a58e 100644
--- a/docs/reference/commandline/service_logs.md
+++ b/docs/reference/commandline/service_logs.md
@@ -30,9 +30,11 @@
   -t, --timestamps     Show timestamps
 ```
 
+## Description
+
 The `docker service logs` command batch-retrieves logs present at the time of execution.
 
-> **Note**: this command is only functional for services that are started with
+> **Note**: This command is only functional for services that are started with
 > the `json-file` or `journald` logging driver.
 
 For more information about selecting and configuring logging drivers, refer to
@@ -66,7 +68,7 @@
 fraction of a second no more than nine digits long. You can combine the
 `--since` option with either or both of the `--follow` or `--tail` options.
 
-## Related information
+## Related commands
 
 * [service create](service_create.md)
 * [service inspect](service_inspect.md)
diff --git a/docs/reference/commandline/service_ls.md b/docs/reference/commandline/service_ls.md
index ccd68af..c6c2ace 100644
--- a/docs/reference/commandline/service_ls.md
+++ b/docs/reference/commandline/service_ls.md
@@ -29,12 +29,18 @@
   -q, --quiet          Only display IDs
 ```
 
+## Description
+
 This command when run targeting a manager, lists services are running in the
 swarm.
 
+## Examples
+
 On a manager node:
+
 ```bash
 $ docker service ls
+
 ID            NAME      MODE        REPLICAS    IMAGE
 c8wgl7q4ndfd  frontend  replicated  5/5         nginx:alpine
 dmu1ept4cxcf  redis     replicated  3/3         redis:3.0.6
@@ -44,7 +50,7 @@
 The `REPLICAS` column shows both the *actual* and *desired* number of tasks for
 the service.
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
 than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@@ -55,7 +61,7 @@
 * [label](service_ls.md#label)
 * [name](service_ls.md#name)
 
-#### ID
+#### id
 
 The `id` filter matches all or part of a service's id.
 
@@ -65,7 +71,7 @@
 0bcjwfh8ychr  redis  replicated  1/1       redis:3.0.6
 ```
 
-#### Label
+#### label
 
 The `label` filter matches services based on the presence of a `label` alone or
 a `label` and a value.
@@ -91,7 +97,7 @@
 74nzcxxjv6fq  backend   replicated  3/3       redis:3.0.6
 ```
 
-#### Name
+#### name
 
 The `name` filter matches on all or part of a service's name.
 
@@ -103,7 +109,7 @@
 0bcjwfh8ychr  redis  replicated  1/1       redis:3.0.6
 ```
 
-## Related information
+## Related commands
 
 * [service create](service_create.md)
 * [service inspect](service_inspect.md)
diff --git a/docs/reference/commandline/service_ps.md b/docs/reference/commandline/service_ps.md
index 61abb15..4b0118f 100644
--- a/docs/reference/commandline/service_ps.md
+++ b/docs/reference/commandline/service_ps.md
@@ -29,12 +29,14 @@
   -q, --quiet           Only display task IDs
 ```
 
-Lists the tasks that are running as part of the specified service. This command
+## Description
+
+Lists the tasks that are running as part of the specified services. This command
 has to be run targeting a manager node.
 
 ## Examples
 
-### Listing the tasks that are part of a service
+### List the tasks that are part of a service
 
 The following command shows all the tasks that are part of the `redis` service:
 
@@ -93,7 +95,7 @@
 nvjljf7rmor4htv7l8rwcx7i7   \_ redis.2   redis:3.0.6@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842  worker2   Shutdown       Rejected 5 minutes ago   "No such image: redis@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842"
 ```
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
 is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
@@ -108,7 +110,7 @@
 * [desired-state](#desired-state)
 
 
-#### ID
+#### id
 
 The `id` filter matches on all or a prefix of a task's ID.
 
@@ -120,7 +122,7 @@
 8eaxrb2fqpbn   redis.10  redis:3.0.6  manager1  Running        Running 8 seconds
 ```
 
-#### Name
+#### name
 
 The `name` filter matches on task names.
 
@@ -131,7 +133,7 @@
 ```
 
 
-#### Node
+#### node
 
 The `node` filter matches on a node name or a node ID.
 
@@ -150,7 +152,7 @@
 The `desired-state` filter can take the values `running`, `shutdown`, and `accepted`.
 
 
-## Related information
+## Related commands
 
 * [service create](service_create.md)
 * [service inspect](service_inspect.md)
diff --git a/docs/reference/commandline/service_rm.md b/docs/reference/commandline/service_rm.md
index d0ba90b..448f2c3 100644
--- a/docs/reference/commandline/service_rm.md
+++ b/docs/reference/commandline/service_rm.md
@@ -27,24 +27,29 @@
       --help   Print usage
 ```
 
+## Description
+
 Removes the specified services from the swarm. This command has to be run
 targeting a manager node.
 
-For example, to remove the redis service:
+## Examples
+
+Remove the `redis` service:
 
 ```bash
 $ docker service rm redis
+
 redis
+
 $ docker service ls
+
 ID  NAME  MODE  REPLICAS  IMAGE
 ```
 
 > **Warning**: Unlike `docker rm`, this command does not ask for confirmation
 > before removing a running service.
 
-
-
-## Related information
+## Related commands
 
 * [service create](service_create.md)
 * [service inspect](service_inspect.md)
diff --git a/docs/reference/commandline/service_scale.md b/docs/reference/commandline/service_scale.md
index 64075ed..a3aef5f 100644
--- a/docs/reference/commandline/service_scale.md
+++ b/docs/reference/commandline/service_scale.md
@@ -24,9 +24,7 @@
       --help   Print usage
 ```
 
-## Examples
-
-### Scale a service
+## Description
 
 The scale command enables you to scale one or more replicated services either up
 or down to the desired number of replicas. This command cannot be applied on
@@ -34,19 +32,27 @@
 actual scaling of the service may take some time. To stop all replicas of a
 service while keeping the service active in the swarm you can set the scale to 0.
 
-For example, the following command scales the "frontend" service to 50 tasks.
+## Examples
+
+### Scale a single service
+
+The following command scales the "frontend" service to 50 tasks.
 
 ```bash
 $ docker service scale frontend=50
+
 frontend scaled to 50
 ```
 
 The following command tries to scale a global service to 10 tasks and returns an error.
 
-```
+```bash
 $ docker service create --mode global --name backend backend:latest
+
 b4g08uwuairexjub6ome6usqh
+
 $ docker service scale backend=10
+
 backend: scale can only be used with replicated mode
 ```
 
@@ -76,16 +82,18 @@
 
 ```bash
 $ docker service scale backend=3 frontend=5
+
 backend scaled to 3
 frontend scaled to 5
 
 $ docker service ls
+
 ID            NAME      MODE        REPLICAS  IMAGE
 3pr5mlvu3fh9  frontend  replicated  5/5       nginx:alpine
 74nzcxxjv6fq  backend   replicated  3/3       redis:3.0.6
 ```
 
-## Related information
+## Related commands
 
 * [service create](service_create.md)
 * [service inspect](service_inspect.md)
diff --git a/docs/reference/commandline/service_update.md b/docs/reference/commandline/service_update.md
index 301a0ea..a98923e 100644
--- a/docs/reference/commandline/service_update.md
+++ b/docs/reference/commandline/service_update.md
@@ -80,6 +80,8 @@
   -w, --workdir string                   Working directory inside the container
 ```
 
+## Description
+
 Updates a service as described by the specified parameters. This command has to be run targeting a manager node.
 The parameters are the same as [`docker service create`](service_create.md). Please look at the description there
 for further information.
@@ -111,7 +113,7 @@
 `--update-delay 30s` setting introduces a 30 second delay between tasks, so
 that the rolling restart happens gradually.
 
-### Adding and removing mounts
+### Add or remove mounts
 
 Use the `--mount-add` or `--mount-rm` options add or remove a service's bind-mounts
 or volumes.
@@ -151,7 +153,7 @@
 myservice
 ```
 
-### Adding and removing secrets
+### Add or remove secrets
 
 Use the `--secret-add` or `--secret-rm` options add or remove a service's
 secrets.
@@ -170,7 +172,7 @@
 Some flags of `service update` support the use of templating.
 See [`service create`](./service_create.md#templating) for the reference.
 
-## Related information
+## Related commands
 
 * [service create](service_create.md)
 * [service inspect](service_inspect.md)
diff --git a/docs/reference/commandline/stack_deploy.md b/docs/reference/commandline/stack_deploy.md
index 037feae..39456b7 100644
--- a/docs/reference/commandline/stack_deploy.md
+++ b/docs/reference/commandline/stack_deploy.md
@@ -30,15 +30,20 @@
       --with-registry-auth    Send registry authentication details to Swarm agents
 ```
 
+## Description
+
 Create and update a stack from a `compose` or a `dab` file on the swarm. This command
 has to be run targeting a manager node.
 
-## Compose file
+## Examples
+
+### Compose file
 
 The `deploy` command supports compose file version `3.0` and above."
 
 ```bash
 $ docker stack deploy --compose-file docker-compose.yml vossibility
+
 Ignoring unsupported options: links
 
 Creating network vossibility_vossibility
@@ -53,8 +58,9 @@
 
 You can verify that the services were correctly created
 
-```
+```bash
 $ docker service ls
+
 ID            NAME                               MODE        REPLICAS  IMAGE
 29bv0vnlm903  vossibility_lookupd                replicated  1/1       nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
 4awt47624qwh  vossibility_nsqd                   replicated  1/1       nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
@@ -64,10 +70,11 @@
 axqh55ipl40h  vossibility_vossibility-collector  replicated  1/1       icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba
 ```
 
-## DAB file
+### DAB file
 
 ```bash
 $ docker stack deploy --bundle-file vossibility-stack.dab vossibility
+
 Loading bundle from vossibility-stack.dab
 Creating service vossibility_elasticsearch
 Creating service vossibility_kibana
@@ -81,6 +88,7 @@
 
 ```bash
 $ docker service ls
+
 ID            NAME                               MODE        REPLICAS  IMAGE
 29bv0vnlm903  vossibility_lookupd                replicated  1/1       nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
 4awt47624qwh  vossibility_nsqd                   replicated  1/1       nsqio/nsq@sha256:eeba05599f31eba418e96e71e0984c3dc96963ceb66924dd37a47bf7ce18a662
@@ -90,7 +98,7 @@
 axqh55ipl40h  vossibility_vossibility-collector  replicated  1/1       icecrime/vossibility-collector@sha256:f03f2977203ba6253988c18d04061c5ec7aab46bca9dfd89a9a1fa4500989fba
 ```
 
-## Related information
+## Related commands
 
 * [stack ls](stack_ls.md)
 * [stack ps](stack_ps.md)
diff --git a/docs/reference/commandline/stack_ls.md b/docs/reference/commandline/stack_ls.md
index 05c7215..567d947 100644
--- a/docs/reference/commandline/stack_ls.md
+++ b/docs/reference/commandline/stack_ls.md
@@ -27,9 +27,13 @@
       --help   Print usage
 ```
 
+## Description
+
 Lists the stacks.
 
-For example, the following command shows all stacks and some additional information:
+## Examples
+
+The following command shows all stacks and some additional information:
 
 ```bash
 $ docker stack ls
@@ -39,7 +43,7 @@
 myapp              2
 ```
 
-## Related information
+## Related commands
 
 * [stack deploy](stack_deploy.md)
 * [stack ps](stack_ps.md)
diff --git a/docs/reference/commandline/stack_ps.md b/docs/reference/commandline/stack_ps.md
index 101e9fe..9f221d8 100644
--- a/docs/reference/commandline/stack_ps.md
+++ b/docs/reference/commandline/stack_ps.md
@@ -27,10 +27,18 @@
       --no-trunc        Do not truncate output
 ```
 
+## Description
+
 Lists the tasks that are running as part of the specified stack. This
 command has to be run targeting a manager node.
 
-## Filtering
+## Examples
+
+```bash
+$ docker stack ps
+```
+
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
 is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
@@ -43,7 +51,7 @@
 * name
 * desired-state
 
-## Related information
+## Related commands
 
 * [stack deploy](stack_deploy.md)
 * [stack ls](stack_ls.md)
diff --git a/docs/reference/commandline/stack_rm.md b/docs/reference/commandline/stack_rm.md
index fd63997..d9d5043 100644
--- a/docs/reference/commandline/stack_rm.md
+++ b/docs/reference/commandline/stack_rm.md
@@ -27,10 +27,12 @@
       --help   Print usage
 ```
 
+## Description
+
 Remove the stack from the swarm. This command has to be run targeting
 a manager node.
 
-## Related information
+## Related commands
 
 * [stack deploy](stack_deploy.md)
 * [stack ls](stack_ls.md)
diff --git a/docs/reference/commandline/stack_services.md b/docs/reference/commandline/stack_services.md
index 62779b4..d688795 100644
--- a/docs/reference/commandline/stack_services.md
+++ b/docs/reference/commandline/stack_services.md
@@ -27,10 +27,14 @@
   -q, --quiet          Only display IDs
 ```
 
+### Description
+
 Lists the services that are running as part of the specified stack. This
 command has to be run targeting a manager node.
 
-For example, the following command shows all services in the `myapp` stack:
+### Examples
+
+The following command shows all services in the `myapp` stack:
 
 ```bash
 $ docker stack services myapp
@@ -40,7 +44,7 @@
 dn7m7nhhfb9y  myapp_db        1/1       mysql@sha256:a9a5b559f8821fe73d58c3606c812d1c044868d42c63817fa5125fd9d8b7b539
 ```
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
 is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
@@ -62,7 +66,7 @@
 * name (`--filter name=myapp_web`)
 * label (`--filter label=key=value`)
 
-## Related information
+## Related commands
 
 * [stack deploy](stack_deploy.md)
 * [stack ls](stack_ls.md)
diff --git a/docs/reference/commandline/start.md b/docs/reference/commandline/start.md
index 980bce9..aa67228 100644
--- a/docs/reference/commandline/start.md
+++ b/docs/reference/commandline/start.md
@@ -26,3 +26,9 @@
       --help                 Print usage
   -i, --interactive          Attach container's STDIN
 ```
+
+## Examples
+
+```bash
+$ docker start my_container
+```
diff --git a/docs/reference/commandline/stats.md b/docs/reference/commandline/stats.md
index f5d0d54..55d5a44 100644
--- a/docs/reference/commandline/stats.md
+++ b/docs/reference/commandline/stats.md
@@ -27,6 +27,8 @@
       --no-stream       Disable streaming stats and only pull the first result
 ```
 
+## Description
+
 The `docker stats` command returns a live data stream for running containers. To limit data to one or more specific containers, specify a list of container names or ids separated by a space. You can specify a stopped container but stopped containers do not return any data.
 
 If you want more detailed information about a container's resource usage, use the `/containers/(id)/stats` API endpoint.
@@ -35,41 +37,49 @@
 
 Running `docker stats` on all running containers against a Linux daemon.
 
-    $ docker stats
-    CONTAINER           CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O
-    1285939c1fd3        0.07%               796 KiB / 64 MiB        1.21%               788 B / 648 B       3.568 MB / 512 KB
-    9c76f7834ae2        0.07%               2.746 MiB / 64 MiB      4.29%               1.266 KB / 648 B    12.4 MB / 0 B
-    d1ea048f04e4        0.03%               4.583 MiB / 64 MiB      6.30%               2.854 KB / 648 B    27.7 MB / 0 B
+```bash
+$ docker stats
+CONTAINER           CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O
+1285939c1fd3        0.07%               796 KiB / 64 MiB        1.21%               788 B / 648 B       3.568 MB / 512 KB
+9c76f7834ae2        0.07%               2.746 MiB / 64 MiB      4.29%               1.266 KB / 648 B    12.4 MB / 0 B
+d1ea048f04e4        0.03%               4.583 MiB / 64 MiB      6.30%               2.854 KB / 648 B    27.7 MB / 0 B
+```
 
 Running `docker stats` on multiple containers by name and id against a Linux daemon.
 
-    $ docker stats fervent_panini 5acfcb1b4fd1
-    CONTAINER           CPU %               MEM USAGE/LIMIT       MEM %               NET I/O
-    5acfcb1b4fd1        0.00%               115.2 MiB/1.045 GiB   11.03%              1.422 kB/648 B
-    fervent_panini      0.02%               11.08 MiB/1.045 GiB   1.06%               648 B/648 B
+```bash
+$ docker stats fervent_panini 5acfcb1b4fd1
+CONTAINER           CPU %               MEM USAGE/LIMIT       MEM %               NET I/O
+5acfcb1b4fd1        0.00%               115.2 MiB/1.045 GiB   11.03%              1.422 kB/648 B
+fervent_panini      0.02%               11.08 MiB/1.045 GiB   1.06%               648 B/648 B
+```
 
 Running `docker stats` on all running containers against a Windows daemon.
 
-    PS E:\> docker stats
-    CONTAINER           CPU %               PRIV WORKING SET    NET I/O             BLOCK I/O
-    09d3bb5b1604        6.61%               38.21 MiB           17.1 kB / 7.73 kB   10.7 MB / 3.57 MB
-    9db7aa4d986d        9.19%               38.26 MiB           15.2 kB / 7.65 kB   10.6 MB / 3.3 MB
-    3f214c61ad1d        0.00%               28.64 MiB           64 kB / 6.84 kB     4.42 MB / 6.93 MB
+```powershell
+PS E:\> docker stats
+CONTAINER           CPU %               PRIV WORKING SET    NET I/O             BLOCK I/O
+09d3bb5b1604        6.61%               38.21 MiB           17.1 kB / 7.73 kB   10.7 MB / 3.57 MB
+9db7aa4d986d        9.19%               38.26 MiB           15.2 kB / 7.65 kB   10.6 MB / 3.3 MB
+3f214c61ad1d        0.00%               28.64 MiB           64 kB / 6.84 kB     4.42 MB / 6.93 MB
+```
 
 Running `docker stats` on multiple containers by name and id against a Windows daemon.
 
-    PS E:\> docker ps -a
-    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
-    3f214c61ad1d        nanoserver          "cmd"               2 minutes ago       Up 2 minutes                            big_minsky
-    9db7aa4d986d        windowsservercore   "cmd"               2 minutes ago       Up 2 minutes                            mad_wilson
-    09d3bb5b1604        windowsservercore   "cmd"               2 minutes ago       Up 2 minutes                            affectionate_easley
+```powershell
+PS E:\> docker ps -a
+CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
+3f214c61ad1d        nanoserver          "cmd"               2 minutes ago       Up 2 minutes                            big_minsky
+9db7aa4d986d        windowsservercore   "cmd"               2 minutes ago       Up 2 minutes                            mad_wilson
+09d3bb5b1604        windowsservercore   "cmd"               2 minutes ago       Up 2 minutes                            affectionate_easley
 
-    PS E:\> docker stats 3f214c61ad1d mad_wilson
-    CONTAINER           CPU %               PRIV WORKING SET    NET I/O             BLOCK I/O
-    3f214c61ad1d        0.00%               46.25 MiB           76.3 kB / 7.92 kB   10.3 MB / 14.7 MB
-    mad_wilson          9.59%               40.09 MiB           27.6 kB / 8.81 kB   17 MB / 20.1 MB
+PS E:\> docker stats 3f214c61ad1d mad_wilson
+CONTAINER           CPU %               PRIV WORKING SET    NET I/O             BLOCK I/O
+3f214c61ad1d        0.00%               46.25 MiB           76.3 kB / 7.92 kB   10.3 MB / 14.7 MB
+mad_wilson          9.59%               40.09 MiB           27.6 kB / 8.81 kB   17 MB / 20.1 MB
+```
 
-## Formatting
+### Formatting
 
 The formatting option (`--format`) pretty prints container output
 using a Go template.
diff --git a/docs/reference/commandline/stop.md b/docs/reference/commandline/stop.md
index 3090db9..dc00b38 100644
--- a/docs/reference/commandline/stop.md
+++ b/docs/reference/commandline/stop.md
@@ -25,5 +25,13 @@
   -t, --time int   Seconds to wait for stop before killing it (default 10)
 ```
 
+## Description
+
 The main process inside the container will receive `SIGTERM`, and after a grace
 period, `SIGKILL`.
+
+## Examples
+
+```bash
+$ docker stop my_container
+```
diff --git a/docs/reference/commandline/swarm_init.md b/docs/reference/commandline/swarm_init.md
index 44afc27..8cba118 100644
--- a/docs/reference/commandline/swarm_init.md
+++ b/docs/reference/commandline/swarm_init.md
@@ -34,9 +34,12 @@
       --task-history-limit int          Task history retention limit (default 5)
 ```
 
+## Description
+
 Initialize a swarm. The docker engine targeted by this command becomes a manager
 in the newly created single-node swarm.
 
+## Examples
 
 ```bash
 $ docker swarm init --advertise-addr 192.168.99.121
@@ -133,7 +136,7 @@
 state to new managers. However, there is a performance cost to taking snapshots
 frequently.
 
-## Related information
+## Related commands
 
 * [swarm join](swarm_join.md)
 * [swarm leave](swarm_leave.md)
diff --git a/docs/reference/commandline/swarm_join.md b/docs/reference/commandline/swarm_join.md
index 0cde0d7..d0b6685 100644
--- a/docs/reference/commandline/swarm_join.md
+++ b/docs/reference/commandline/swarm_join.md
@@ -27,10 +27,14 @@
       --token string            Token for entry into the swarm
 ```
 
+## Description
+
 Join a node to a swarm. The node joins as a manager node or worker node based upon the token you
 pass with the `--token` flag. If you pass a manager token, the node joins as a manager. If you
 pass a worker token, the node joins as a worker.
 
+## Examples
+
 ### Join a node to swarm as a manager
 
 The example below demonstrates joining a manager node using a manager token.
@@ -95,7 +99,7 @@
 Secret value required for nodes to join the swarm
 
 
-## Related information
+## Related commands
 
 * [swarm init](swarm_init.md)
 * [swarm leave](swarm_leave.md)
diff --git a/docs/reference/commandline/swarm_join_token.md b/docs/reference/commandline/swarm_join_token.md
index d731f02..60f5622 100644
--- a/docs/reference/commandline/swarm_join_token.md
+++ b/docs/reference/commandline/swarm_join_token.md
@@ -26,12 +26,16 @@
       --rotate   Rotate join token
 ```
 
+## Description
+
 Join tokens are secrets that allow a node to join the swarm. There are two
 different join tokens available, one for the worker role and one for the manager
 role. You pass the token using the `--token` flag when you run
 [swarm join](swarm_join.md). Nodes use the join token only when they join the
 swarm.
 
+## Examples
+
 You can view or rotate the join tokens using `swarm join-token`.
 
 As a convenience, you can pass `worker` or `manager` as an argument to
@@ -100,6 +104,6 @@
 
 Only print the token. Do not print a complete command for joining.
 
-## Related information
+## Related commands
 
 * [swarm join](swarm_join.md)
diff --git a/docs/reference/commandline/swarm_leave.md b/docs/reference/commandline/swarm_leave.md
index c0d9437..4b5569b 100644
--- a/docs/reference/commandline/swarm_leave.md
+++ b/docs/reference/commandline/swarm_leave.md
@@ -25,6 +25,8 @@
       --help    Print usage
 ```
 
+## Description
+
 When you run this command on a worker, that worker leaves the swarm.
 
 You can use the `--force` option to on a manager to remove it from the swarm.
@@ -34,7 +36,10 @@
 without using `--force`. Only use `--force` in situations where the swarm will
 no longer be used after the manager leaves, such as in a single-node swarm.
 
+## Examples
+
 Consider the following swarm, as seen from the manager:
+
 ```bash
 $ docker node ls
 ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
@@ -50,7 +55,12 @@
 ```
 To remove an inactive node, use the [`node rm`](node_rm.md) command instead.
 
-## Related information
+The node will still appear in the node list, and marked as `down`. It no longer
+affects swarm operation, but a long list of `down` nodes can clutter the node
+list. To remove an inactive node from the list, use the [`node rm`](node_rm.md)
+command.
+
+## Related commands
 
 * [node rm](node_rm.md)
 * [swarm init](swarm_init.md)
diff --git a/docs/reference/commandline/swarm_unlock.md b/docs/reference/commandline/swarm_unlock.md
index 164b7d3..bd7ed14 100644
--- a/docs/reference/commandline/swarm_unlock.md
+++ b/docs/reference/commandline/swarm_unlock.md
@@ -24,18 +24,21 @@
       --help   Print usage
 ```
 
+## Description
+
 Unlocks a locked manager using a user-supplied unlock key. This command must be
 used to reactivate a manager after its Docker daemon restarts if the autolock
 setting is turned on. The unlock key is printed at the time when autolock is
 enabled, and is also available from the `docker swarm unlock-key` command.
 
+## Examples
 
 ```bash
 $ docker swarm unlock
 Please enter unlock key:
 ```
 
-## Related information
+## Related commands
 
 * [swarm init](swarm_init.md)
 * [swarm update](swarm_update.md)
diff --git a/docs/reference/commandline/swarm_unlock_key.md b/docs/reference/commandline/swarm_unlock_key.md
index a2597fe..6dc3aae 100644
--- a/docs/reference/commandline/swarm_unlock_key.md
+++ b/docs/reference/commandline/swarm_unlock_key.md
@@ -26,6 +26,8 @@
       --rotate   Rotate unlock key
 ```
 
+## Description
+
 An unlock key is a secret key needed to unlock a manager after its Docker daemon
 restarts. These keys are only used when the autolock feature is enabled for the
 swarm.
@@ -33,9 +35,11 @@
 You can view or rotate the unlock key using `swarm unlock-key`. To view the key,
 run the `docker swarm unlock-key` command without any arguments:
 
+## Examples
 
 ```bash
 $ docker swarm unlock-key
+
 To unlock a swarm manager after it restarts, run the `docker swarm unlock`
 command and provide the following key:
 
@@ -77,7 +81,7 @@
 
 Only print the unlock key, without instructions.
 
-## Related information
+## Related commands
 
 * [swarm unlock](swarm_unlock.md)
 * [swarm init](swarm_init.md)
diff --git a/docs/reference/commandline/swarm_update.md b/docs/reference/commandline/swarm_update.md
index 0af63fe..aed72d0 100644
--- a/docs/reference/commandline/swarm_update.md
+++ b/docs/reference/commandline/swarm_update.md
@@ -31,14 +31,17 @@
       --task-history-limit int          Task history retention limit (default 5)
 ```
 
+## Description
+
 Updates a swarm with new parameter values. This command must target a manager node.
 
+## Examples
 
 ```bash
 $ docker swarm update --cert-expiry 720h
 ```
 
-## Related information
+## Related commands
 
 * [swarm init](swarm_init.md)
 * [swarm join](swarm_join.md)
diff --git a/docs/reference/commandline/system_df.md b/docs/reference/commandline/system_df.md
index c6e8bbd..6758bde 100644
--- a/docs/reference/commandline/system_df.md
+++ b/docs/reference/commandline/system_df.md
@@ -25,12 +25,18 @@
   -v, --verbose   Show detailed information on space usage
 ```
 
+## Description
+
 The `docker system df` command displays information regarding the
 amount of disk space used by the docker daemon.
 
+## Examples
+
 By default the command will just show a summary of the data used:
+
 ```bash
 $ docker system df
+
 TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
 Images              5                   2                   16.43 MB            11.63 MB (70%)
 Containers          2                   0                   212 B               212 B (100%)
@@ -38,8 +44,10 @@
 ```
 
 A more detailed view can be requested using the `-v, --verbose` flag:
+
 ```bash
 $ docker system df -v
+
 Images space usage:
 
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE                SHARED SIZE         UNIQUE SIZE         CONTAINERS
@@ -66,9 +74,10 @@
 * `UNIQUE SIZE` is the amount of space that is only used by a given image
 * `SIZE` is the virtual size of the image, it is the sum of `SHARED SIZE` and `UNIQUE SIZE`
 
-Note that network information is not shown because it doesn't consume the disk space.
+> **Note**: Network information is not shown because it doesn't consume the disk
+> space.
 
-## Related Information
+## Related commands
 * [system prune](system_prune.md)
 * [container prune](container_prune.md)
 * [volume prune](volume_prune.md)
diff --git a/docs/reference/commandline/system_prune.md b/docs/reference/commandline/system_prune.md
index 46f8c43..4959b65 100644
--- a/docs/reference/commandline/system_prune.md
+++ b/docs/reference/commandline/system_prune.md
@@ -26,12 +26,15 @@
       --help    Print usage
 ```
 
+## Description
+
 Remove all unused containers, volumes, networks and images (both dangling and unreferenced).
 
-Example output:
+## Examples
 
 ```bash
 $ docker system prune -a
+
 WARNING! This will remove:
 	- all stopped containers
 	- all volumes not used by at least one container
@@ -64,7 +67,7 @@
 Total reclaimed space: 13.5 MB
 ```
 
-## Related information
+## Related commands
 
 * [volume create](volume_create.md)
 * [volume ls](volume_ls.md)
diff --git a/docs/reference/commandline/tag.md b/docs/reference/commandline/tag.md
index 983bfe2..347dd3f 100644
--- a/docs/reference/commandline/tag.md
+++ b/docs/reference/commandline/tag.md
@@ -24,6 +24,8 @@
       --help   Print usage
 ```
 
+## Description
+
 An image name is made up of slash-separated name components, optionally prefixed
 by a registry hostname. The hostname must comply with standard DNS rules, but
 may not contain underscores. If a hostname is present, it may optionally be
@@ -40,35 +42,43 @@
 You can group your images together using names and tags, and then upload them
 to [*Share Images via Repositories*](https://docs.docker.com/engine/tutorials/dockerrepos/#/contributing-to-docker-hub).
 
-# Examples
+## Examples
 
-## Tagging an image referenced by ID
+### Tag an image referenced by ID
 
 To tag a local image with ID "0e5574283393" into the "fedora" repository with
 "version1.0":
 
-    docker tag 0e5574283393 fedora/httpd:version1.0
+```bash
+$ docker tag 0e5574283393 fedora/httpd:version1.0
+```
 
-## Tagging an image referenced by Name
+### Tag an image referenced by Name
 
 To tag a local image with name "httpd" into the "fedora" repository with
 "version1.0":
 
-    docker tag httpd fedora/httpd:version1.0
+```bash
+$ docker tag httpd fedora/httpd:version1.0
+```
 
 Note that since the tag name is not specified, the alias is created for an
 existing local version `httpd:latest`.
 
-## Tagging an image referenced by Name and Tag
+### Tag an image referenced by Name and Tag
 
 To tag a local image with name "httpd" and tag "test" into the "fedora"
 repository with "version1.0.test":
 
-    docker tag httpd:test fedora/httpd:version1.0.test
+```bash
+$ docker tag httpd:test fedora/httpd:version1.0.test
+```
 
-## Tagging an image for a private repository
+### Tag an image for a private repository
 
 To push an image to a private registry and not the central Docker
 registry you must tag it with the registry hostname and port (if needed).
 
-    docker tag 0e5574283393 myregistryhost:5000/fedora/httpd:version1.0
+```bash
+$ docker tag 0e5574283393 myregistryhost:5000/fedora/httpd:version1.0
+```
diff --git a/docs/reference/commandline/unpause.md b/docs/reference/commandline/unpause.md
index aa2326f..8915a43 100644
--- a/docs/reference/commandline/unpause.md
+++ b/docs/reference/commandline/unpause.md
@@ -24,6 +24,8 @@
       --help   Print usage
 ```
 
+## Description
+
 The `docker unpause` command un-suspends all processes in the specified containers.
 On Linux, it does this using the cgroups freezer.
 
@@ -31,6 +33,12 @@
 [cgroups freezer documentation](https://www.kernel.org/doc/Documentation/cgroup-v1/freezer-subsystem.txt)
 for further details.
 
-## Related information
+## Examples
+
+```bash
+$ docker unpause my_container
+```
+
+## Related commands
 
 * [pause](pause.md)
diff --git a/docs/reference/commandline/update.md b/docs/reference/commandline/update.md
index a139004..f41cf39 100644
--- a/docs/reference/commandline/update.md
+++ b/docs/reference/commandline/update.md
@@ -37,6 +37,8 @@
       --restart string              Restart policy to apply when a container exits
 ```
 
+## Description
+
 The `docker update` command dynamically updates container configuration.
 You can use this command to prevent containers from consuming too many
 resources from their Docker host.  With a single command, you can place
diff --git a/docs/reference/commandline/version.md b/docs/reference/commandline/version.md
index cb1bcee..b15d13b 100644
--- a/docs/reference/commandline/version.md
+++ b/docs/reference/commandline/version.md
@@ -25,6 +25,8 @@
       --help            Print usage
 ```
 
+## Description
+
 By default, this will render all version information in an easy to read
 layout. If a format is specified, the given template will be executed instead.
 
@@ -33,35 +35,40 @@
 
 ## Examples
 
-**Default output:**
+### Default output
 
-    $ docker version
-	Client:
-	 Version:      1.8.0
-	 API version:  1.20
-	 Go version:   go1.4.2
-	 Git commit:   f5bae0a
-	 Built:        Tue Jun 23 17:56:00 UTC 2015
-	 OS/Arch:      linux/amd64
+```bash
+$ docker version
 
-	Server:
-	 Version:      1.8.0
-	 API version:  1.20
-	 Go version:   go1.4.2
-	 Git commit:   f5bae0a
-	 Built:        Tue Jun 23 17:56:00 UTC 2015
-	 OS/Arch:      linux/amd64
+Client:
+Version:      1.8.0
+API version:  1.20
+Go version:   go1.4.2
+Git commit:   f5bae0a
+Built:        Tue Jun 23 17:56:00 UTC 2015
+OS/Arch:      linux/amd64
 
-**Get server version:**
+Server:
+Version:      1.8.0
+API version:  1.20
+Go version:   go1.4.2
+Git commit:   f5bae0a
+Built:        Tue Jun 23 17:56:00 UTC 2015
+OS/Arch:      linux/amd64
+```
 
-    {% raw %}
-    $ docker version --format '{{.Server.Version}}'
-	1.8.0
-    {% endraw %}
+### Get the server version
 
-**Dump raw data:**
+```bash
+$ docker version --format '{{.Server.Version}}'
 
-    {% raw %}
-    $ docker version --format '{{json .}}'
-    {"Client":{"Version":"1.8.0","ApiVersion":"1.20","GitCommit":"f5bae0a","GoVersion":"go1.4.2","Os":"linux","Arch":"amd64","BuildTime":"Tue Jun 23 17:56:00 UTC 2015"},"ServerOK":true,"Server":{"Version":"1.8.0","ApiVersion":"1.20","GitCommit":"f5bae0a","GoVersion":"go1.4.2","Os":"linux","Arch":"amd64","KernelVersion":"3.13.2-gentoo","BuildTime":"Tue Jun 23 17:56:00 UTC 2015"}}
-    {% endraw %}
+1.8.0
+```
+
+### Dump raw JSON data
+
+```bash
+$ docker version --format '{{json .}}'
+
+{"Client":{"Version":"1.8.0","ApiVersion":"1.20","GitCommit":"f5bae0a","GoVersion":"go1.4.2","Os":"linux","Arch":"amd64","BuildTime":"Tue Jun 23 17:56:00 UTC 2015"},"ServerOK":true,"Server":{"Version":"1.8.0","ApiVersion":"1.20","GitCommit":"f5bae0a","GoVersion":"go1.4.2","Os":"linux","Arch":"amd64","KernelVersion":"3.13.2-gentoo","BuildTime":"Tue Jun 23 17:56:00 UTC 2015"}}
+```
diff --git a/docs/reference/commandline/volume_create.md b/docs/reference/commandline/volume_create.md
index 9b188a9..b1eed37 100644
--- a/docs/reference/commandline/volume_create.md
+++ b/docs/reference/commandline/volume_create.md
@@ -27,33 +27,51 @@
   -o, --opt value       Set driver specific options (default map[])
 ```
 
-Creates a new volume that containers can consume and store data in. If a name is not specified, Docker generates a random name. You create a volume and then configure the container to use it, for example:
+## Description
+
+Creates a new volume that containers can consume and store data in. If a name is
+not specified, Docker generates a random name.
+
+## Examples
+
+Create a volume and then configure the container to use it:
 
 ```bash
 $ docker volume create hello
+
 hello
 
 $ docker run -d -v hello:/world busybox ls /world
 ```
 
-The mount is created inside the container's `/world` directory. Docker does not support relative paths for mount points inside the container.
+The mount is created inside the container's `/world` directory. Docker does not
+support relative paths for mount points inside the container.
 
-Multiple containers can use the same volume in the same time period. This is useful if two containers need access to shared data. For example, if one container writes and the other reads the data.
+Multiple containers can use the same volume in the same time period. This is
+useful if two containers need access to shared data. For example, if one
+container writes and the other reads the data.
 
-Volume names must be unique among drivers.  This means you cannot use the same volume name with two different drivers.  If you attempt this `docker` returns an error:
+Volume names must be unique among drivers. This means you cannot use the same
+volume name with two different drivers. If you attempt this `docker` returns an
+error:
 
-```
+```none
 A volume named  "hello"  already exists with the "some-other" driver. Choose a different volume name.
 ```
 
-If you specify a volume name already in use on the current driver, Docker assumes you want to re-use the existing volume and does not return an error.   
+If you specify a volume name already in use on the current driver, Docker
+assumes you want to re-use the existing volume and does not return an error.
 
-## Driver specific options
+### Driver-specific options
 
-Some volume drivers may take options to customize the volume creation. Use the `-o` or `--opt` flags to pass driver options:
+Some volume drivers may take options to customize the volume creation. Use the
+`-o` or `--opt` flags to pass driver options:
 
 ```bash
-$ docker volume create --driver fake --opt tardis=blue --opt timey=wimey
+$ docker volume create --driver fake \
+    --opt tardis=blue \
+    --opt timey=wimey \
+    foo
 ```
 
 These options are passed directly to the volume driver. Options for
@@ -61,28 +79,44 @@
 
 The built-in `local` driver on Windows does not support any options.
 
-The built-in `local` driver on Linux accepts options similar to the linux `mount` command. You can provide multiple options by passing the `--opt` flag multiple times. Some `mount` options (such as the `o` option) can take a comma-separated list of options. Complete list of available mount options can be found [here](http://man7.org/linux/man-pages/man8/mount.8.html).
+The built-in `local` driver on Linux accepts options similar to the linux
+`mount` command. You can provide multiple options by passing the `--opt` flag
+multiple times. Some `mount` options (such as the `o` option) can take a
+comma-separated list of options. Complete list of available mount options can be
+found [here](http://man7.org/linux/man-pages/man8/mount.8.html).
 
-For example, the following creates a `tmpfs` volume called `foo` with a size of 100 megabyte and `uid` of 1000.
+For example, the following creates a `tmpfs` volume called `foo` with a size of
+100 megabyte and `uid` of 1000.
 
 ```bash
-$ docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 foo
+$ docker volume create --driver local \
+    --opt type=tmpfs \
+    --opt device=tmpfs \
+    --opt o=size=100m,uid=1000 \
+    foo
 ```
 
 Another example that uses `btrfs`:
 
 ```bash
-$ docker volume create --driver local --opt type=btrfs --opt device=/dev/sda2 foo
+$ docker volume create --driver local \
+    --opt type=btrfs \
+    --opt device=/dev/sda2 \
+    foo
 ```
 
-Another example that uses `nfs` to mount the `/path/to/dir` in `rw` mode from `192.168.1.1`:
+Another example that uses `nfs` to mount the `/path/to/dir` in `rw` mode from
+`192.168.1.1`:
 
 ```bash
-$ docker volume create --driver local --opt type=nfs --opt o=addr=192.168.1.1,rw --opt device=:/path/to/dir foo
+$ docker volume create --driver local \
+    --opt type=nfs \
+    --opt o=addr=192.168.1.1,rw \
+    --opt device=:/path/to/dir \
+    foo
 ```
 
-
-## Related information
+## Related commands
 
 * [volume inspect](volume_inspect.md)
 * [volume ls](volume_ls.md)
diff --git a/docs/reference/commandline/volume_inspect.md b/docs/reference/commandline/volume_inspect.md
index 98e0ee5..bbdc6bd 100644
--- a/docs/reference/commandline/volume_inspect.md
+++ b/docs/reference/commandline/volume_inspect.md
@@ -25,32 +25,34 @@
       --help            Print usage
 ```
 
+## Description
+
 Returns information about a volume. By default, this command renders all results
 in a JSON array. You can specify an alternate format to execute a
 given template for each result. Go's
 [text/template](http://golang.org/pkg/text/template/) package describes all the
 details of the format.
 
-Example output:
+## Examples
 
-    $ docker volume create
-    85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
-    $ docker volume inspect 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
-    [
-      {
-          "Name": "85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d",
-          "Driver": "local",
-          "Mountpoint": "/var/lib/docker/volumes/85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d/_data",
-          "Status": null
-      }
-    ]
+```bash
+$ docker volume create
+85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
+$ docker volume inspect 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
+[
+  {
+      "Name": "85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d",
+      "Driver": "local",
+      "Mountpoint": "/var/lib/docker/volumes/85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d/_data",
+      "Status": null
+  }
+]
 
-    {% raw %}
-    $ docker volume inspect --format '{{ .Mountpoint }}' 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
-    /var/lib/docker/volumes/85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d/_data
-    {% endraw %}
+$ docker volume inspect --format '{{ .Mountpoint }}' 85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d
+/var/lib/docker/volumes/85bffb0677236974f93955d8ecc4df55ef5070117b0e53333cc1b443777be24d/_data
+```
 
-## Related information
+## Related commands
 
 * [volume create](volume_create.md)
 * [volume ls](volume_ls.md)
diff --git a/docs/reference/commandline/volume_ls.md b/docs/reference/commandline/volume_ls.md
index 90ecef2..c35e662 100644
--- a/docs/reference/commandline/volume_ls.md
+++ b/docs/reference/commandline/volume_ls.md
@@ -34,22 +34,32 @@
   -q, --quiet          Only display volume names
 ```
 
-List all the volumes Docker knows about. You can filter using the `-f` or `--filter` flag. Refer to the [filtering](#filtering) section for more information about available filter options.
+## Description
 
-Example output:
+List all the volumes known to Docker. You can filter using the `-f` or
+`--filter` flag. Refer to the [filtering](#filtering) section for more
+information about available filter options.
 
+## Examples
+
+### Create a volume
 ```bash
 $ docker volume create rosemary
+
 rosemary
-$docker volume create tyler
+
+$ docker volume create tyler
+
 tyler
+
 $ docker volume ls
+
 DRIVER              VOLUME NAME
 local               rosemary
 local               tyler
 ```
 
-## Filtering
+### Filtering
 
 The filtering flag (`-f` or `--filter`) format is of "key=value". If there is more
 than one filter, then pass multiple flags (e.g., `--filter "foo=bar" --filter "bif=baz"`)
@@ -61,7 +71,7 @@
 * label (`label=<key>` or `label=<key>=<value>`)
 * name (a volume's name)
 
-### dangling
+#### dangling
 
 The `dangling` filter matches on all volumes not referenced by any containers
 
@@ -74,7 +84,7 @@
 local               rosemary
 ```
 
-### driver
+#### driver
 
 The `driver` filter matches on all or part of a volume's driver name.
 
@@ -88,7 +98,7 @@
 local               tyler
 ```
 
-#### Label
+#### label
 
 The `label` filter matches volumes based on the presence of a `label` alone or
 a `label` and a value.
@@ -97,8 +107,10 @@
 
 ```bash
 $ docker volume create the-doctor --label is-timelord=yes
+
 the-doctor
 $ docker volume create daleks --label is-timelord=no
+
 daleks
 ```
 
@@ -113,7 +125,7 @@
 local               the-doctor
 ```
 
-As can be seen in the above example, both volumes with `is-timelord=yes`, and
+As the above example demonstrates, both volumes with `is-timelord=yes`, and
 `is-timelord=no` are returned.
 
 Filtering on both `key` *and* `value` of the label, produces the expected result:
@@ -134,17 +146,20 @@
 DRIVER              VOLUME NAME
 ```
 
-### name
+#### name
 
 The `name` filter matches on all or part of a volume's name.
 
 The following filter matches all volumes with a name containing the `rose` string.
 
-    $ docker volume ls -f name=rose
-    DRIVER              VOLUME NAME
-    local               rosemary
+```bash
+$ docker volume ls -f name=rose
 
-## Formatting
+DRIVER              VOLUME NAME
+local               rosemary
+```
+
+### Formatting
 
 The formatting options (`--format`) pretty-prints volumes output
 using a Go template.
@@ -169,12 +184,13 @@
 
 ```bash
 $ docker volume ls --format "{{.Name}}: {{.Driver}}"
+
 vol1: local
 vol2: local
 vol3: local
 ```
 
-## Related information
+## Related commands
 
 * [volume create](volume_create.md)
 * [volume inspect](volume_inspect.md)
diff --git a/docs/reference/commandline/volume_prune.md b/docs/reference/commandline/volume_prune.md
index d910a49..a9c4b70 100644
--- a/docs/reference/commandline/volume_prune.md
+++ b/docs/reference/commandline/volume_prune.md
@@ -25,12 +25,15 @@
       --help    Print usage
 ```
 
+## Description
+
 Remove all unused volumes. Unused volumes are those which are not referenced by any containers
 
-Example output:
+## Examples
 
 ```bash
 $ docker volume prune
+
 WARNING! This will remove all volumes not used by at least one container.
 Are you sure you want to continue? [y/N] y
 Deleted Volumes:
@@ -40,7 +43,7 @@
 Total reclaimed space: 36 B
 ```
 
-## Related information
+## Related commands
 
 * [volume create](volume_create.md)
 * [volume ls](volume_ls.md)
diff --git a/docs/reference/commandline/volume_rm.md b/docs/reference/commandline/volume_rm.md
index 1bf9dba..a1f2d3b 100644
--- a/docs/reference/commandline/volume_rm.md
+++ b/docs/reference/commandline/volume_rm.md
@@ -28,12 +28,18 @@
       --help   Print usage
 ```
 
+## Description
+
 Remove one or more volumes. You cannot remove a volume that is in use by a container.
 
-    $ docker volume rm hello
-    hello
+## Examples
 
-## Related information
+```bash
+  $ docker volume rm hello
+  hello
+```
+
+## Related commands
 
 * [volume create](volume_create.md)
 * [volume inspect](volume_inspect.md)
diff --git a/docs/reference/commandline/wait.md b/docs/reference/commandline/wait.md
index a07b82b..ee8f9ab 100644
--- a/docs/reference/commandline/wait.md
+++ b/docs/reference/commandline/wait.md
@@ -23,3 +23,36 @@
 Options:
       --help   Print usage
 ```
+
+> **Note**: `docker wait` returns `0` when run against a container which had
+> already exited before the `docker wait` command was run.
+
+## Examples
+
+Start a container in the background.
+
+```bash
+$ docker run -dit --name=my_container ubuntu bash
+```
+
+Run `docker wait`, which should block until the container exits.
+
+```bash
+$ docker wait my_container
+```
+
+In another terminal, stop the first container. The `docker wait` command above
+returns the exit code.
+
+```bash
+$ docker stop my_container
+```
+
+This is the same `docker wait` command from above, but it now exits, returning
+`0`.
+
+```bash
+$ docker wait my_container
+
+0
+```
diff --git a/docs/yaml/Dockerfile b/docs/yaml/Dockerfile
new file mode 100644
index 0000000..059b97a
--- /dev/null
+++ b/docs/yaml/Dockerfile
@@ -0,0 +1,4 @@
+FROM scratch
+COPY docs /docs
+# CMD cannot be nil so we set it to empty string
+CMD  [""]
diff --git a/docs/yaml/generate.go b/docs/yaml/generate.go
new file mode 100644
index 0000000..ea5c00e
--- /dev/null
+++ b/docs/yaml/generate.go
@@ -0,0 +1,86 @@
+package main
+
+import (
+	"fmt"
+	"io/ioutil"
+	"log"
+	"os"
+	"path/filepath"
+	"strings"
+
+	"github.com/docker/docker/cli/command"
+	"github.com/docker/docker/cli/command/commands"
+	"github.com/docker/docker/pkg/term"
+	"github.com/spf13/cobra"
+	"github.com/spf13/pflag"
+)
+
+const descriptionSourcePath = "docs/reference/commandline/"
+
+func generateCliYaml(opts *options) error {
+	stdin, stdout, stderr := term.StdStreams()
+	dockerCli := command.NewDockerCli(stdin, stdout, stderr)
+	cmd := &cobra.Command{Use: "docker"}
+	commands.AddCommands(cmd, dockerCli)
+	source := filepath.Join(opts.source, descriptionSourcePath)
+	if err := loadLongDescription(cmd, source); err != nil {
+		return err
+	}
+
+	cmd.DisableAutoGenTag = true
+	return GenYamlTree(cmd, opts.target)
+}
+
+func loadLongDescription(cmd *cobra.Command, path ...string) error {
+	for _, cmd := range cmd.Commands() {
+		if cmd.Name() == "" {
+			continue
+		}
+		fullpath := filepath.Join(path[0], strings.Join(append(path[1:], cmd.Name()), "_")+".md")
+
+		if cmd.HasSubCommands() {
+			loadLongDescription(cmd, path[0], cmd.Name())
+		}
+
+		if _, err := os.Stat(fullpath); err != nil {
+			log.Printf("WARN: %s does not exist, skipping\n", fullpath)
+			continue
+		}
+
+		content, err := ioutil.ReadFile(fullpath)
+		if err != nil {
+			return err
+		}
+		description, examples := parseMDContent(string(content))
+		cmd.Long = description
+		cmd.Example = examples
+	}
+	return nil
+}
+
+type options struct {
+	source string
+	target string
+}
+
+func parseArgs() (*options, error) {
+	opts := &options{}
+	cwd, _ := os.Getwd()
+	flags := pflag.NewFlagSet(os.Args[0], pflag.ContinueOnError)
+	flags.StringVar(&opts.source, "root", cwd, "Path to project root")
+	flags.StringVar(&opts.target, "target", "/tmp", "Target path for generated yaml files")
+	err := flags.Parse(os.Args[1:])
+	return opts, err
+}
+
+func main() {
+	opts, err := parseArgs()
+	if err != nil {
+		fmt.Fprintln(os.Stderr, err.Error())
+	}
+	fmt.Printf("Project root: %s\n", opts.source)
+	fmt.Printf("Generating yaml files into %s\n", opts.target)
+	if err := generateCliYaml(opts); err != nil {
+		fmt.Fprintf(os.Stderr, "Failed to generate yaml files: %s\n", err.Error())
+	}
+}
diff --git a/docs/yaml/yaml.go b/docs/yaml/yaml.go
new file mode 100644
index 0000000..575f9be
--- /dev/null
+++ b/docs/yaml/yaml.go
@@ -0,0 +1,212 @@
+package main
+
+import (
+	"fmt"
+	"io"
+	"os"
+	"path/filepath"
+	"sort"
+	"strings"
+
+	"github.com/spf13/cobra"
+	"github.com/spf13/pflag"
+	"gopkg.in/yaml.v2"
+)
+
+type cmdOption struct {
+	Option       string
+	Shorthand    string `yaml:",omitempty"`
+	DefaultValue string `yaml:"default_value,omitempty"`
+	Description  string `yaml:",omitempty"`
+}
+
+type cmdDoc struct {
+	Name             string      `yaml:"command"`
+	SeeAlso          []string    `yaml:"parent,omitempty"`
+	Version          string      `yaml:"engine_version,omitempty"`
+	Aliases          string      `yaml:",omitempty"`
+	Short            string      `yaml:",omitempty"`
+	Long             string      `yaml:",omitempty"`
+	Usage            string      `yaml:",omitempty"`
+	Pname            string      `yaml:",omitempty"`
+	Plink            string      `yaml:",omitempty"`
+	Cname            []string    `yaml:",omitempty"`
+	Clink            []string    `yaml:",omitempty"`
+	Options          []cmdOption `yaml:",omitempty"`
+	InheritedOptions []cmdOption `yaml:"inherited_options,omitempty"`
+	Example          string      `yaml:"examples,omitempty"`
+}
+
+// GenYamlTree creates yaml structured ref files
+func GenYamlTree(cmd *cobra.Command, dir string) error {
+	identity := func(s string) string { return s }
+	emptyStr := func(s string) string { return "" }
+	return GenYamlTreeCustom(cmd, dir, emptyStr, identity)
+}
+
+// GenYamlTreeCustom creates yaml structured ref files
+func GenYamlTreeCustom(cmd *cobra.Command, dir string, filePrepender, linkHandler func(string) string) error {
+	for _, c := range cmd.Commands() {
+		if !c.IsAvailableCommand() || c.IsHelpCommand() {
+			continue
+		}
+		if err := GenYamlTreeCustom(c, dir, filePrepender, linkHandler); err != nil {
+			return err
+		}
+	}
+
+	basename := strings.Replace(cmd.CommandPath(), " ", "_", -1) + ".yaml"
+	filename := filepath.Join(dir, basename)
+	f, err := os.Create(filename)
+	if err != nil {
+		return err
+	}
+	defer f.Close()
+
+	if _, err := io.WriteString(f, filePrepender(filename)); err != nil {
+		return err
+	}
+	if err := GenYamlCustom(cmd, f, linkHandler); err != nil {
+		return err
+	}
+	return nil
+}
+
+// GenYamlCustom creates custom yaml output
+func GenYamlCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) string) error {
+	cliDoc := cmdDoc{}
+	cliDoc.Name = cmd.CommandPath()
+
+	// Check experimental: ok := cmd.Tags["experimental"]
+
+	cliDoc.Aliases = strings.Join(cmd.Aliases, ", ")
+	cliDoc.Short = cmd.Short
+	cliDoc.Long = cmd.Long
+	if len(cliDoc.Long) == 0 {
+		cliDoc.Long = cliDoc.Short
+	}
+
+	if cmd.Runnable() {
+		cliDoc.Usage = cmd.UseLine()
+	}
+
+	if len(cmd.Example) > 0 {
+		cliDoc.Example = cmd.Example
+	}
+
+	flags := cmd.NonInheritedFlags()
+	if flags.HasFlags() {
+		cliDoc.Options = genFlagResult(flags)
+	}
+	flags = cmd.InheritedFlags()
+	if flags.HasFlags() {
+		cliDoc.InheritedOptions = genFlagResult(flags)
+	}
+
+	if hasSeeAlso(cmd) {
+		if cmd.HasParent() {
+			parent := cmd.Parent()
+			cliDoc.Pname = parent.CommandPath()
+			link := cliDoc.Pname + ".yaml"
+			cliDoc.Plink = strings.Replace(link, " ", "_", -1)
+			cmd.VisitParents(func(c *cobra.Command) {
+				if c.DisableAutoGenTag {
+					cmd.DisableAutoGenTag = c.DisableAutoGenTag
+				}
+			})
+		}
+
+		children := cmd.Commands()
+		sort.Sort(byName(children))
+
+		for _, child := range children {
+			if !child.IsAvailableCommand() || child.IsHelpCommand() {
+				continue
+			}
+			currentChild := cliDoc.Name + " " + child.Name()
+			cliDoc.Cname = append(cliDoc.Cname, cliDoc.Name+" "+child.Name())
+			link := currentChild + ".yaml"
+			cliDoc.Clink = append(cliDoc.Clink, strings.Replace(link, " ", "_", -1))
+		}
+	}
+
+	final, err := yaml.Marshal(&cliDoc)
+	if err != nil {
+		fmt.Println(err)
+		os.Exit(1)
+	}
+	if _, err := fmt.Fprintln(w, string(final)); err != nil {
+		return err
+	}
+	return nil
+}
+
+func genFlagResult(flags *pflag.FlagSet) []cmdOption {
+	var result []cmdOption
+
+	flags.VisitAll(func(flag *pflag.Flag) {
+		// Todo, when we mark a shorthand is deprecated, but specify an empty message.
+		// The flag.ShorthandDeprecated is empty as the shorthand is deprecated.
+		// Using len(flag.ShorthandDeprecated) > 0 can't handle this, others are ok.
+		if !(len(flag.ShorthandDeprecated) > 0) && len(flag.Shorthand) > 0 {
+			opt := cmdOption{
+				Option:       flag.Name,
+				Shorthand:    flag.Shorthand,
+				DefaultValue: flag.DefValue,
+				Description:  forceMultiLine(flag.Usage),
+			}
+			result = append(result, opt)
+		} else {
+			opt := cmdOption{
+				Option:       flag.Name,
+				DefaultValue: forceMultiLine(flag.DefValue),
+				Description:  forceMultiLine(flag.Usage),
+			}
+			result = append(result, opt)
+		}
+	})
+
+	return result
+}
+
+// Temporary workaround for yaml lib generating incorrect yaml with long strings
+// that do not contain \n.
+func forceMultiLine(s string) string {
+	if len(s) > 60 && !strings.Contains(s, "\n") {
+		s = s + "\n"
+	}
+	return s
+}
+
+// Small duplication for cobra utils
+func hasSeeAlso(cmd *cobra.Command) bool {
+	if cmd.HasParent() {
+		return true
+	}
+	for _, c := range cmd.Commands() {
+		if !c.IsAvailableCommand() || c.IsHelpCommand() {
+			continue
+		}
+		return true
+	}
+	return false
+}
+
+func parseMDContent(mdString string) (description string, examples string) {
+	parsedContent := strings.Split(mdString, "\n## ")
+	for _, s := range parsedContent {
+		if strings.Index(s, "Description") == 0 {
+			description = strings.Trim(s, "Description\n")
+		}
+		if strings.Index(s, "Examples") == 0 {
+			examples = strings.Trim(s, "Examples\n")
+		}
+	}
+	return
+}
+
+type byName []*cobra.Command
+
+func (s byName) Len() int           { return len(s) }
+func (s byName) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }
+func (s byName) Less(i, j int) bool { return s[i].Name() < s[j].Name() }
diff --git a/hack/make/yaml-docs-generator b/hack/make/yaml-docs-generator
new file mode 100644
index 0000000..8548dee
--- /dev/null
+++ b/hack/make/yaml-docs-generator
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+set -e
+
+[ -z "$KEEPDEST" ] && \
+	rm -rf "$DEST"
+
+(
+	source "${MAKEDIR}/.binary-setup"
+	export BINARY_SHORT_NAME="yaml-docs-generator"
+	export GO_PACKAGE='github.com/docker/docker/docs/yaml'
+	source "${MAKEDIR}/.binary"
+)
diff --git a/hooks/post_build b/hooks/post_build
new file mode 100755
index 0000000..5281707
--- /dev/null
+++ b/hooks/post_build
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+if [ -n "${BUILD_DOCS}" ]; then
+	set -e
+	DOCS_IMAGE=${DOCS_IMAGE:-${IMAGE_NAME}-docs}
+	docker run \
+		--entrypoint '' \
+		--privileged \
+		-e DOCKER_GITCOMMIT=$(git rev-parse --short HEAD) \
+		-v $(pwd)/docs/yaml/docs:/docs \
+		"${IMAGE_NAME}" \
+		sh -c 'hack/make.sh yaml-docs-generator && bundles/latest/yaml-docs-generator/yaml-docs-generator --target /docs'
+
+	(
+		cd docs/yaml
+		docker build -t ${DOCS_IMAGE} .
+		docker push ${DOCS_IMAGE}
+	)
+fi
