Commit Graph

24554 Commits

Author SHA1 Message Date
Brian Goff 94b2d3554c Merge pull request #23136 from nalind/logscmd_read_journald_attrs
Add support for reading journal extras details, and setting timestamps to UTC
2016-06-02 20:42:24 -04:00
Michael Crosby ce255f76c7 Add User defined Healthchecks for Containers
Carry of #22719
2016-06-02 16:58:34 -07:00
Sebastiaan van Stijn 76d8b0dab7
Bump engine-api to fa04f66c7871183dd53a5ec666479f49b452743d
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-03 00:14:55 +02:00
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
Brian Goff d1b1b6a98e Merge pull request #23212 from LK4D4/remove_unused_var
pkg/parser/kernel: remove unused var block
2016-06-02 16:30:05 -04:00
Vincent Demeester eb9274844e Merge pull request #23140 from Microsoft/HcsshimRevendor
Revendor hcsshim
2016-06-02 22:09:19 +02:00
Sebastiaan van Stijn 4399d3b309 Merge pull request #23206 from mlaventure/fix-release-deb
Fix release-deb script
2016-06-02 21:22:49 +02:00
Sebastiaan van Stijn 791f98290e Merge pull request #22806 from errordeveloper/master
Remove MountFlags in systemd unit to allow shared mount propagation
2016-06-02 20:04:08 +02:00
Alexander Morozov 6e5894b551 pkg/parser/kernel: remove unused var block
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-06-02 10:50:36 -07:00
Alexander Morozov 34f54b3a11 Merge pull request #22549 from allencloud/make-pkg-parsers-support-darwin
add darwin support in package docker/pkg/parsers
2016-06-02 10:48:19 -07:00
Alexander Morozov cb8e7470be Merge pull request #23208 from vdemeester/update-engine-api
Bump engine api to 009ba16
2016-06-02 09:30:57 -07:00
Kenfe-Mickael Laventure afc2579d1a Fix release-deb script
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-06-02 08:53:33 -07:00
Vincent Demeester f69353a364 Merge pull request #23153 from AkihiroSuda/fix23152PkgGitutils
Fix gitconfig dependency in pkg/gitutils.TestCheckoutGit
2016-06-02 17:21:38 +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 6b7f12650d
Update ContainerStart calls to use options now
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-02 16:56:13 +02:00
Vincent Demeester 8ea051f012
Update engine-api to 009ba1641d669613b38818f6f6385b0e74c5728f
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-02 16:55:49 +02:00
Nalin Dahyabhai 0da0a8f9da Add support for reading journal extras and in UTC
When told to read additional attributes from logs that we've sent to the
journal, pull out all of the non-trusted, non-user fields that we didn't
hard-code ourselves.  More of PR#20726 and PR#21889.

When reading entries in the journald log reader, set the time zone on
timestamps that we read to UTC, so that we send UTC values to the client
instead of values that are local to whatever timezone dockerd happens to
be running in.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2016-06-02 10:17:07 -04:00
Sebastiaan van Stijn 80b3e9e810 Merge pull request #23183 from caarlos0/permissions
Removed exec permissions from Dockerfile.windows
2016-06-02 16:10:37 +02:00
Sebastiaan van Stijn 171af54931 Merge pull request #22460 from jwhonce/wip/sigpipe
Ignore SIGPIPE events
2016-06-02 16:05:22 +02:00
Sebastiaan van Stijn 0aeac288a3 Merge pull request #23161 from AkihiroSuda/rename-misleading-function-name
daemon: Rename copy to copyFunc
2016-06-02 15:31:08 +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
Vincent Demeester 69545fe19d Merge pull request #23190 from AkihiroSuda/addendum23141
Fix the comment for daemon/logger.Copier
2016-06-02 12:21:52 +02:00
Akihiro Suda efc250bc6b Fix gitconfig dependency in pkg/gitutils.TestCheckoutGit
Fix #23152

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2016-06-02 17:44:09 +09:00
Vincent Demeester b02acfcbe0 Merge pull request #23197 from coolljt0725/cleanup_comment
cleanup: clean up commented code in daemon/stats.go
2016-06-02 10:12:10 +02:00
Lei Jitang 2d9c022946 cleanup: clean up commented code in daemon/stats.go
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-06-02 14:39:12 +08:00
Akihiro Suda 8bce6265fc daemon: Rename copy to copyFunc
"copy" can be misleading for humans because Go has its own builtin "copy" function

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2016-06-02 13:30:20 +09:00
Akihiro Suda 518709a87e Fix the comment for daemon/logger.Copier
Now daemon/logger.Copier does not use ContainerID

Addendum to #23141

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2016-06-02 13:10:51 +09:00
allencloud a7f551359a make pkg/parsers support darwin and solaris
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-06-02 11:47:27 +08:00
Brian Goff 287b0a6348 Merge pull request #23141 from nalind/logger-remove-cid
Remove the logger.Message ContainerID field
2016-06-01 23:13:38 -04:00
Brian Goff 7e5561a438 Merge pull request #23151 from AkihiroSuda/fix23012PkgAuth
Fix racy tests in pkg/authorization
2016-06-01 20:45:54 -04:00
Brian Goff 273ab8591e Merge pull request #22867 from justincormack/checklimits
Begin a section in the check-config script to check limits
2016-06-01 20:42:54 -04:00
Carlos Alexandro Becker db3351ae37
Removed exec permissions from Dockerfile.windows
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2016-06-01 21:41:19 -03: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
Alexander Morozov 2ca25302fe Merge pull request #23120 from AkihiroSuda/fixStreamFormatter
Fix pkg/streamformatter.TestJSONFormatProgress
2016-06-01 14:37:35 -07:00
Alexander Morozov 28676fc04b Merge pull request #22769 from dnephin/integrate_cobra
Use spf13/cobra for the cli
2016-06-01 14:18:23 -07:00
Vincent Demeester cbccb19212 Merge pull request #23090 from yongtang/05292016-remove-deprecated-docker-tag-f
Remove deprecated -f flag on docker tag
2016-06-01 21:29:33 +02: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
Alexander Morozov cb36dddad1 Merge pull request #23148 from mlaventure/wait-for-containerd-before-restarting-it
Wait for containerd to die before restarting it
2016-06-01 10:35:31 -07: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
Yong Tang 1dab9af5d5 Vendor engine-api to 6facb3f3c38717b8f618dcedc4c8ce20d1bfc61e
This fix updates engine-api to 6facb3f3c38717b8f618dcedc4c8ce20d1bfc61e.

This fix is related to #23090.

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
Vincent Demeester 09be7d9ee4 Merge pull request #23085 from icecrime/gitdm.config
Add gitdm configuration
2016-06-01 18:12:59 +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
Brian Goff bcf0c8ca28 Merge pull request #23142 from Microsoft/ExtraCleanup
Windows: Remove a double free on hcs container handle
2016-06-01 11:09:06 -04:00
Vincent Demeester 466eb1bab7 Merge pull request #23084 from estesp/ps-fastpath
Optimize `docker ps` when name/id filters in use
2016-06-01 16:52:35 +02:00
Kenfe-Mickael Laventure ce160b37e1 Wait for containerd to die before restarting it
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-06-01 07:45:03 -07: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
Vincent Demeester c7aba69cc1 Merge pull request #22989 from Microsoft/StartCleanup
Windows: Adding missing cleanup call when container start fails
2016-06-01 15:42:47 +02:00
Sebastiaan van Stijn 1ba9aadbcb Merge pull request #23072 from dnephin/set_state_dir_of_containerd
Set --state-dir on containerd
2016-06-01 14:56:32 +02:00