Commit Graph

5289 Commits

Author SHA1 Message Date
Thomas Leonard b6c7becbfe
Add support for user-defined healthchecks
This PR adds support for user-defined health-check probes for Docker
containers. It adds a `HEALTHCHECK` instruction to the Dockerfile syntax plus
some corresponding "docker run" options. It can be used with a restart policy
to automatically restart a container if the check fails.

The `HEALTHCHECK` instruction has two forms:

* `HEALTHCHECK [OPTIONS] CMD command` (check container health by running a command inside the container)
* `HEALTHCHECK NONE` (disable any healthcheck inherited from the base image)

The `HEALTHCHECK` instruction tells Docker how to test a container to check that
it is still working. This can detect cases such as a web server that is stuck in
an infinite loop and unable to handle new connections, even though the server
process is still running.

When a container has a healthcheck specified, it has a _health status_ in
addition to its normal status. This status is initially `starting`. Whenever a
health check passes, it becomes `healthy` (whatever state it was previously in).
After a certain number of consecutive failures, it becomes `unhealthy`.

The options that can appear before `CMD` are:

* `--interval=DURATION` (default: `30s`)
* `--timeout=DURATION` (default: `30s`)
* `--retries=N` (default: `1`)

The health check will first run **interval** seconds after the container is
started, and then again **interval** seconds after each previous check completes.

If a single run of the check takes longer than **timeout** seconds then the check
is considered to have failed.

It takes **retries** consecutive failures of the health check for the container
to be considered `unhealthy`.

There can only be one `HEALTHCHECK` instruction in a Dockerfile. If you list
more than one then only the last `HEALTHCHECK` will take effect.

The command after the `CMD` keyword can be either a shell command (e.g. `HEALTHCHECK
CMD /bin/check-running`) or an _exec_ array (as with other Dockerfile commands;
see e.g. `ENTRYPOINT` for details).

The command's exit status indicates the health status of the container.
The possible values are:

- 0: success - the container is healthy and ready for use
- 1: unhealthy - the container is not working correctly
- 2: starting - the container is not ready for use yet, but is working correctly

If the probe returns 2 ("starting") when the container has already moved out of the
"starting" state then it is treated as "unhealthy" instead.

For example, to check every five minutes or so that a web-server is able to
serve the site's main page within three seconds:

    HEALTHCHECK --interval=5m --timeout=3s \
      CMD curl -f http://localhost/ || exit 1

To help debug failing probes, any output text (UTF-8 encoded) that the command writes
on stdout or stderr will be stored in the health status and can be queried with
`docker inspect`. Such output should be kept short (only the first 4096 bytes
are stored currently).

When the health status of a container changes, a `health_status` event is
generated with the new status. The health status is also displayed in the
`docker ps` output.

Signed-off-by: Thomas Leonard <thomas.leonard@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-02 23:58:34 +02:00
Vincent Demeester 09033b8df2 Merge pull request #23179 from kerneltime/master
Add VMware Docker Volume Plugin.
2016-06-02 17:05:32 +02:00
Vincent Demeester 22aca92ee3 Merge pull request #23121 from unclejack/disallow_ecryptfs_aufs
aufs,overlay: disable on eCryptfs
2016-06-02 12:54:43 +02:00
Ritesh H Shukla f5df49b3dc Add VMware Docker Volume Plugin.
Add reference to https://github.com/vmware/docker-volume-vsphere to Docker's list of plugins.
This is an officially supported plugin from VMware.

Signed-off-by: Ritesh H Shukla <sritesh@vmware.com>
2016-06-01 15:29:15 -07:00
unclejack 5e85ec82af aufs,overlay: disable on eCryptfs
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2016-06-01 21:00:35 +03:00
Yong Tang 7b08941882 Update remote API docs for the removal of deprecated `force` in `docker tag`.
This fix updates remote API docs for the removal of deprecated `force` in `docker tag`.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-01 09:45:10 -07:00
Yong Tang 4455ec14b8 Remove deprecated -f flag on docker tag
The -f flag on docker tag has been deprecated in docker 1.10 and
is expected to be removed in docker 1.12.

This fix removed the -f flag on docker tag and also updated
deprecated.md.

NOTE: A separate pull request for engine-api has been opened to
cover the related changes.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-01 09:44:25 -07:00
Vincent Demeester 4b86651053 Merge pull request #22570 from mountkin/rm-deprecated-feature
remove deprecated feature of passing HostConfig at API container start
2016-06-01 18:24:28 +02:00
Sebastiaan van Stijn 8d75709f90 Merge pull request #23165 from thaJeztah/update-logging-code-hints
cleanup logging driver documentation
2016-06-01 17:55:24 +02:00
Shijiang Wei 0a8386c8be remove deprecated feature of passing HostConfig at API container start
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-06-01 22:25:17 +08:00
Sebastiaan van Stijn a9f6d93099
cleanup logging driver documentation
This does a minor cleanup of the logging driver
documentation;

- Add a table-header to the driver-options
  table.
- Add language hints to code-blocks to
  prevent incorrect highlighting
- Wrap some code examples so that they
  fit in the default layout
- Wrap text to 80-chars
- Fix ordering in menu
- Some minor rewording

We should still create separate pages
for all available drivers (for example,
json-file, syslog, and GELF don't have
their own configuration page)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-01 13:18:25 +02:00
Ben Firshman 896fbb470a Remove status column from client libraries page
They are all "active". If they are not active, we should probably
remove them.

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2016-05-31 16:12:14 -07:00
Ben Firshman 2fea5b6e28 Update client libraries introduction text
Explain what they actually are.

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2016-05-31 16:11:36 -07:00
Roland Kammerer ef238db508 Add the DRBD Docker Volume Plugin to the documentation
Signed-off-by: Roland Kammerer <roland.kammerer@linbit.com>
2016-05-30 17:46:53 +02:00
Sebastiaan van Stijn f3a7abee81 Merge pull request #22384 from yongtang/22358-log-tag-prefix
Remove `docker/` prefix from log messages tag.
2016-05-30 14:48:31 +02:00
Sebastiaan van Stijn 4a031f1f80 Merge pull request #22621 from yongtang/05092016-remove-deprecated-command-line-short-variant-options
Un-deprecated command line short variant options of `-c`
2016-05-27 23:12:08 +02:00
Sebastiaan van Stijn 068d466cc7 Merge pull request #23060 from friism/add-power-shell-example
Add power shell example
2016-05-27 21:21:32 +02:00
Michael Friis ab391c9ab5 Add powershell example and make linux build example consistent with other examples
Signed-off-by: Michael Friis <friism@gmail.com>
2016-05-27 11:49:09 -07:00
Vincent Demeester f1276cd3aa Merge pull request #23039 from yongtang/05262016-docs-cluster-store-opts
Fix error in dockerd.md for incorrect cluster-store-opts example.
2016-05-27 18:55:48 +02:00
Yong Tang 32b234885e Fix error in dockerd.md for incorrect cluster-store-opts example.
This fix fixes an error in documentation (dockerd.md). In the
example given by dockerd.md, the option `cluster-store-opts`
is assigned with an array but this option can only be assigned
as a map.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-05-26 20:04:48 -07:00
Sven Dowideit ee76963125 Fix up stale links
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2016-05-27 00:28:46 +00:00
Alexander Morozov ef89891855 Merge pull request #22888 from ibuildthecloud/host-compat
Remove DOCKER_HTTP_HOST_COMPAT env var
2016-05-26 14:41:22 -07:00
Arnaud Porterie 8e924153e2 Merge pull request #22268 from Microsoft/jjh/continuationescape
Support platform semantic file paths through ESCAPE
2016-05-26 10:00:56 -07:00
Yong Tang fea7acf0e9 Un-deprecated command line short variant options of `-c`.
Since 1.9, the following short variant options have been
deprecated in favor of their long variants:
`docker run -c (--cpu-shares)`
`docker build -c (--cpu-shares)`
`docker create -c (--cpu-shares)`
`docker update -c (--cpu-shares)`

However, `-c` is still widely used and is considered as
a convenient option for swarm (see #16271).

This fix undeprecated the command line short
variant options of `-c` and updated the deprecated.md.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-05-26 08:22:27 -07:00
Vincent Demeester 215324251a Merge pull request #22999 from deed02392/master
Update debian.md
2016-05-26 15:37:55 +02:00
deed02392 6c5f724560 Update debian.md
Updated documents markdown file on Debian installation.
Added details on the fact that backports are necessary on Wheezy as discussed in issue #16878

Signed-off-by: George Hafiz <george@hafiz.uk>
2016-05-26 13:47:19 +01:00
Avi Miller 7711c842be Fix URLs for official Oracle installation guide.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2016-05-26 07:40:01 +10:00
Sebastiaan van Stijn 3d782cdbff
update link to hub plans
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 23:01:13 +02:00
Sebastiaan van Stijn 4746864c2b Merge pull request #22986 from SvenDowideit/add-make-test
Add make test and other small cleanups
2016-05-25 21:03:59 +02:00
Sebastiaan van Stijn bb80563a81 Merge pull request #22987 from Microsoft/jjh/labeldocs
Docs: Label clarification
2016-05-25 20:56:54 +02:00
Sebastiaan van Stijn a5e4aaaf71 Merge pull request #22661 from SvenDowideit/update-compatibility-matrix
docs: update graphdriver compatibility matrix
2016-05-25 20:48:39 +02:00
John Howard b2643b6953 Docs: Label clarification
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-05-25 11:48:07 -07:00
Sven Dowideit a7bf4e4832 docs: update graphdriver compatibility matrix
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2016-05-25 18:33:45 +00:00
Sven Dowideit ad538f6465 Add make test and other small cleanups
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2016-05-25 18:30:01 +00:00
Sebastiaan van Stijn 0fe4417a3b Merge pull request #22908 from vdemeester/7967-since-before-image-filters
Add before and since filter to images
2016-05-25 20:15:23 +02:00
Vincent Demeester 5bd6067b85 Merge pull request #22968 from mbentley/fix-dm-docs
Fixed lost thin pool devicemapper docs
2016-05-25 16:40:52 +02:00
Matt Bentley 0b8ea4387a
Re-apply changes made in 24ec73f
Signed-off-by: Matt Bentley <matt.bentley@docker.com>
2016-05-25 08:46:39 -04:00
Matt Bentley 79205c3f06
Fix thin pool devicemapper docs overwritten
Signed-off-by: Matt Bentley <matt.bentley@docker.com>
2016-05-25 08:45:51 -04:00
Vincent Demeester 750e16f57c
Add before and since filter to images
Add support for two now filter on the `images` command : `before` and
`since`. They work the same as the one on the `ps` command but for
images.

        $ docker images --filter before=myimage
        # display all images older than myimage
        $ docker images --filter since=myimage
        # display all images younger than myimage

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-05-25 13:49:10 +02:00
Yong Tang 90bd41a74d The option --add-host and --net=host should not be mutually exclusive.
This fix tries to address the issue raised in #21976 and allows
the options of `--add-host` and `--net=host` to work at the same time.

The documentation has been updated and additional tests have been
added to cover this change.

This fix fixes #21976.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-05-24 18:49:11 -07:00
Yong Tang 23821fe586 The option --dns, --dns-search, --dns-opt and --net=host should not be mutually exclusive.
This fix tries to address the issue raised in #21976 and allows
the options of `--dns`, `--dns-search`, `--dns-opt` and `--net=host`
to work at the same time.

The documentation has been updated and additional tests have been
added to cover this change.

This fix fixes #21976.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-05-24 16:03:26 -07:00
Vincent Demeester f0d6fd93a2 Merge pull request #22756 from wangxing1517/fix_docs_dockerd.md
Fix incorrectly named "ip-mask" and "api-cors-headers" options
2016-05-24 18:21:52 +02:00
Vincent Demeester ce07eac570 Merge pull request #22906 from nshalman/patch-1
Clarification about 'docker build --build-arg'
2016-05-24 15:33:27 +02:00
Nahum Shalman fd7d99ed28 Clarification about 'docker build --build-arg'
See #22860

Signed-off-by: Nahum Shalman <nshalman@omniti.com>
2016-05-24 09:25:11 -04:00
Vincent Demeester 6a385a0022 Merge pull request #22900 from AkihiroSuda/fix22020
update docs/reference/commandline/cp.md
2016-05-24 14:06:02 +02:00
Akihiro Suda cb1635c9cf update docs/reference/commandline/cp.md
Close #22020

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2016-05-24 11:09:38 +00:00
Vincent Demeester d76d38c7d0 Merge pull request #22590 from yongtang/22463-docker-daemon-events
Emit events for docker daemon
2016-05-24 11:05:39 +02:00
Michael Friis 5271a69411 remove duplicated text
Signed-off-by: Michael Friis <friism@gmail.com>
2016-05-23 19:01:30 -07:00
Yong Tang 62014aaf9a Add filter for events emitted by docker daemon
This fix tries to cover the issue raised in #22463 by adding
filter for events emitted by docker daemon so that user could
utilize filter to receive events of interest.

Documentations have been updated for this fix.

Additional tests have been added to cover the changes in this fix.

This fix fixes #22463.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-05-23 19:00:47 -07:00
Yong Tang 382c152a73 Emit events for docker daemon
This fix tries to cover the issue raised in #22463 by emitting
events for docker daemon so that user could be notified by
scenarios like config reload, etc.

This fix adds the `daemon reload`, and events for docker daemon.

Additional tests have been added to cover the changes in this fix.

This fix fixes #22463.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-05-23 19:00:47 -07:00