diff --git a/website/source/docs/agent/checks.html.markdown b/website/source/docs/agent/checks.html.markdown
index 336b6e99f..ecb3cdc46 100644
--- a/website/source/docs/agent/checks.html.markdown
+++ b/website/source/docs/agent/checks.html.markdown
@@ -15,7 +15,7 @@ service. If not associated with a service, the check monitors the health of the
A check is defined in a configuration file or added at runtime over the HTTP interface. Checks
created via the HTTP interface persist with that node.
-There are three different kinds of checks:
+There are four different kinds of checks:
* Script + Interval - These checks depend on invoking an external application
that performs the health check, exits with an appropriate exit code, and potentially
@@ -60,6 +60,16 @@ There are three different kinds of checks:
last known status of the check across restarts. Persisted check status is
valid through the end of the TTL from the time of the last check.
+* Docker + Interval - These checks depend on invoking an external application which
+is packaged within a Docker Container. The application is triggered within the running
+container via the Docker Exec API. We expect that the Consul agent user has access
+to either the Docker HTTP API or the unix socket. Consul uses ```$DOCKER_HOST``` to
+determine the Docker API endpoint. The application is expected to run, perform a health
+check of the service running inside the container, and exit with an appropriate exit code.
+The check should be paired with an invocation interval. The shell on which the check
+has to be performed is configurable which makes it possible to run containers which
+have different shells on the same host.
+
## Check Definition
A script check:
@@ -116,6 +126,20 @@ A TTL check:
}
```
+A Docker check:
+```javascript
+{
+"check": {
+ "id": "mem-util",
+ "name": "Memory utilization",
+ "docker_container_id": "f972c95ebf0e",
+ "shell": "/bin/bash",
+ "script": "/usr/local/bin/check_mem.py",
+ "interval": "10s"
+ }
+}
+```
+
Each type of definition must include a `name` and may optionally
provide an `id` and `notes` field. The `id` is set to the `name` if not
provided. It is required that all checks have a unique ID per node: if names
@@ -130,7 +154,7 @@ Checks may also contain a `token` field to provide an ACL token. This token is
used for any interaction with the catalog for the check, including
[anti-entropy syncs](/docs/internals/anti-entropy.html) and deregistration.
-Script, TCP and HTTP checks must include an `interval` field. This field is
+Script, TCP, Docker and HTTP checks must include an `interval` field. This field is
parsed by Go's `time` package, and has the following
[formatting specification](http://golang.org/pkg/time/#ParseDuration):
> A duration string is a possibly signed sequence of decimal numbers, each with