Commit Graph

3572 Commits

Author SHA1 Message Date
d678f7748b Merge pull request #23129 from WeiZhang555/print-detailed-error
Print original error for `start`
Upstream-commit: 9d449d89f7949aea708125badfbaebc65440b98d
Component: engine
2016-06-06 13:43:52 +02:00
fd0727c3a3 Merge pull request #22077 from cpuguy83/remote_volplugin_caps
Add support for volume scopes
Upstream-commit: 28dde09cdf2a48dcdb6ce665cd2b912175dfb871
Component: engine
2016-06-06 10:15:43 +02:00
3a2d4ddfd6 Log and print original error for start
Currently `start` will hide some errors and throw a consolidated error,
which will make it hard to debug because developer can't find the
original error.

This commit allow daemon to log original errors first.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: b4740e3021a39a502ffc82f0f70e9b7ed2f0875f
Component: engine
2016-06-06 10:13:49 +08:00
6075499108 Merge pull request #23063 from yongtang/22961-aws-sdk-go
Update aws-sdk-go to v1.1.30
Upstream-commit: 3f970819bb4231375f7821aa54670fd59e384f4d
Component: engine
2016-06-05 16:01:52 -04:00
da4d783e80 Add support for volume scopes
This is similar to network scopes where a volume can either be `local`
or `global`. A `global` volume is one that exists across the entire
cluster where as a `local` volume exists on a single engine.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 2f40b1b281a3be8f34d82a5170988ee46ea1f442
Component: engine
2016-06-05 15:37:15 -04:00
b8e65d7c23 return err when volume list fails
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: ed2d300ed054c10da65818904d40cfac678ada6d
Component: engine
2016-06-04 23:24:14 +08:00
f88056a4aa Merge pull request #23232 from thaJeztah/update-default-retries
Healthcheck: set default retries to 3
Upstream-commit: 3db23a4eaf19d347c486f0f0ae764ea1b84491c0
Component: engine
2016-06-04 07:50:04 +02:00
0b0f7c4ee5 attach: replace interface with simple type
Also add docs to detach events

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: 3accde6dee079fbde42f1928002bce43cb15833d
Component: engine
2016-06-03 16:40:43 -07:00
79342b784b Merge pull request #22898 from WeiZhang555/add-detach-event
Add detach event
Upstream-commit: c80a2f2937463882c2c38141a710f19b608125e6
Component: engine
2016-06-03 09:49:48 -07:00
52ca58bbaa Healthcheck: set default retries to 3
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 50e470fab4ebdffff74bafeefa2f7fb8c21da13e
Component: engine
2016-06-03 13:28:08 +02:00
57f1cfe3b1 Add detach event
If we attach to a running container and stream is closed afterwards, we
can never be sure if the container is stopped or detached. Adding a new
type of `detach` event can explicitly notify client that container is
detached, so client will know that there's no need to wait for its exit
code and it can move forward to next step now.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: 83ad006d4724929ccbde4bdf768374fad0eeab44
Component: engine
2016-06-03 11:59:11 +08:00
82d7e1ba5d Add --limit option to docker search
This fix tries to address the issue raised in #23055.
Currently `docker search` result caps at 25 and there is
no way to allow getting more results (if exist).

This fix adds the flag `--limit` so that it is possible
to return more results from the `docker search`.

Related documentation has been updated.

Additional tests have been added to cover the changes.

This fix fixes #23055.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 92f10fe228c1b4b527b87ac47401132322283ea3
Component: engine
2016-06-02 19:12:20 -07:00
5578aba972 Merge pull request #23193 from allencloud/fix-typos
use grep to find all a/an typos
Upstream-commit: 98c245c9e63793cf8ca03c5500e0820447c1861c
Component: engine
2016-06-02 18:45:08 -07:00
86b8394801 Merge pull request #23026 from rhatdan/mkdir
Need to create bind mount volume if it does not exist.
Upstream-commit: 850031c581d37b13032d990eae07027901c02873
Component: engine
2016-06-02 20:45:33 -04:00
de2ab87c91 Merge pull request #23136 from nalind/logscmd_read_journald_attrs
Add support for reading journal extras details, and setting timestamps to UTC
Upstream-commit: 94b2d3554c84f33a598a36ba38038f7bbcd97e43
Component: engine
2016-06-02 20:42:24 -04:00
4524589dc5 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>
Upstream-commit: b6c7becbfe1d76b1250f6d8e991e645e13808a9c
Component: engine
2016-06-02 23:58:34 +02:00
04d8138246 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)
Upstream-commit: 0da0a8f9dae35e6a9cb63b9e4a3285e24c001af3
Component: engine
2016-06-02 10:17:07 -04:00
3bf6a7fe89 Merge pull request #23161 from AkihiroSuda/rename-misleading-function-name
daemon: Rename copy to copyFunc
Upstream-commit: 0aeac288a33e498ad6bfa5a91f044a469c78a138
Component: engine
2016-06-02 15:31:08 +02:00
ab8e2e8aee Need to create bind mount volume if it does not exist.
In order to be consistent on creation of volumes for bind mounts
we need to create the source directory if it does not exist and the
user specified he wants it relabeled.

Can not do this lower down the stack, since we are not passing in the
mode fields.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
Upstream-commit: 322cc99c6962ecb56be3107061eb7f61364d05f8
Component: engine
2016-06-02 07:14:17 -04:00
ce5b5efc4f Merge pull request #23121 from unclejack/disallow_ecryptfs_aufs
aufs,overlay: disable on eCryptfs
Upstream-commit: 22aca92ee3503f811f813be4a1349ad8e67fbbdb
Component: engine
2016-06-02 12:54:43 +02:00
3791819a91 Merge pull request #23190 from AkihiroSuda/addendum23141
Fix the comment for daemon/logger.Copier
Upstream-commit: 69545fe19d294d5ff4c43c2adc2795935f14ae61
Component: engine
2016-06-02 12:21:52 +02:00
35c5774373 fix typos
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: c1be45fa38e82054dcad606d71446a662524f2d5
Component: engine
2016-06-02 17:17:22 +08:00
89431d14b9 cleanup: clean up commented code in daemon/stats.go
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: 2d9c02294683e78f9165585a134b090ed47d9bff
Component: engine
2016-06-02 14:39:12 +08:00
894477b221 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>
Upstream-commit: 8bce6265fca22c117cf6d69d9ffd4ee78da9db8a
Component: engine
2016-06-02 13:30:20 +09:00
0593e6d766 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>
Upstream-commit: 518709a87e04f55babc5162861aa4ba9a423f0c8
Component: engine
2016-06-02 13:10:51 +09:00
c944984315 Merge pull request #23141 from nalind/logger-remove-cid
Remove the logger.Message ContainerID field
Upstream-commit: 287b0a6348d8f768db6ff840feedcb32a4c2d448
Component: engine
2016-06-01 23:13:38 -04:00
e85968bd52 aufs,overlay: disable on eCryptfs
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
Upstream-commit: 5e85ec82af6c8ec70ed39fd8489aea730fd41561
Component: engine
2016-06-01 21:00:35 +03:00
f05fdb403b Merge pull request #23084 from estesp/ps-fastpath
Optimize `docker ps` when name/id filters in use
Upstream-commit: 466eb1bab702f7afd652e57f6041124d5399fbd4
Component: engine
2016-06-01 16:52:35 +02:00
f27714bc80 Merge pull request #23133 from runcom/graphtests-fix
graphtest: fix cleanup logic
Upstream-commit: cdf61152bb58f6d10217434c1f976fcdea15110e
Component: engine
2016-06-01 08:42:19 -04:00
dc1c41cd47 Remove the logger.Message ContainerID field
Log drivers are instantiated on a per-container basis, and passed the
container ID (along with other information) when they're initialized.
Drivers that care about that value are caching the value that they're
passed when they're initialized and using it in favor of the value
contained in Message structures that are passed to them, so the field in
Messages is unused, so we remove it.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
Upstream-commit: 7772d270c06cc6c26359b556c95563bae31c1038
Component: engine
2016-05-31 16:41:29 -04:00
2360dea0b4 graphtest: fix cleanup logic
device Base should not exists on failure:

--- FAIL: TestDevmapperCreateBase (0.06s)
    graphtest_unix.go:122: stat
/tmp/docker-graphtest-079240530/devicemapper/mnt/Base/rootfs/a subdir:
no such file or directory
--- FAIL: TestDevmapperCreateSnap (0.00s)
    graphtest_unix.go:219: devmapper: device Base already
exists.

it should be:

--- FAIL: TestDevmapperCreateBase (0.25s)
	graphtest_unix.go:122: stat
/tmp/docker-graphtest-828994195/devicemapper/mnt/Base/rootfs/a subdir:
no such file or directory
--- FAIL: TestDevmapperCreateSnap (0.13s)
	graphtest_unix.go:122: stat
/tmp/docker-graphtest-828994195/devicemapper/mnt/Snap/rootfs/a subdir:
no such file or directory

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
Upstream-commit: b18062122d76a9f53822889874aa12103d491372
Component: engine
2016-05-31 20:08:57 +02:00
86035f6061 Error out if user tries to specify a custom seccomp profile on system that does not support it
Fixes #23031

If a profile is explicitly passed but the system is not built with seccomp support,
error out rather than just running without a profile at all as we would previously.
Behaviour is unchanged if no profile is specified or unconfined is specified.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Upstream-commit: 6bd797b43fa738efc7eed02e96c21b352aa1c25b
Component: engine
2016-05-31 17:52:40 +01:00
1bb6a6a0db Optimize docker ps when name/id filters in use
When a partial ID or name is used in `docker ps` filters, today the
entire list of containers is walked even though there are shorter paths
to acquiring the subset of containers that match the ID or name. Also,
container's locks are used during this walk, causing increased lock
contention on a busy daemon.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
Upstream-commit: 8e4a451448376932d57885541be22c9a38de5668
Component: engine
2016-05-30 17:43:55 -04:00
df33adb751 Merge pull request #22103 from coolljt0725/fix_22093
Fix docker create with duplicate volume failed to remove
Upstream-commit: edcc9577bf95c2eeaa15955e7b1c00a18cec7cb6
Component: engine
2016-05-30 15:57:13 +02:00
801ed1028f Merge pull request #22384 from yongtang/22358-log-tag-prefix
Remove `docker/` prefix from log messages tag.
Upstream-commit: f3a7abee8107eb13e13dfff959998286b87a34ed
Component: engine
2016-05-30 14:48:31 +02:00
cd8eab09a6 Merge pull request #23019 from vdemeester/more-daemon-horn-moving
Moving some more methods away from daemon.go
Upstream-commit: c0501025368544a64060da431a270d8f954b7e98
Component: engine
2016-05-28 22:07:31 -07:00
b039e514c3 Fix build errors caused by update aws-sdk-go to v1.1.30
This fix tries to fix build errors caused by updating
aws-sdk-go to v1.1.30.

This fix fixes #22961.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 46ea8ff75d03999e08f77f526e93d8489eb0fabd
Component: engine
2016-05-28 18:49:17 -07:00
98b281fb61 Windows: fix Windows graph driver name
Reverting "Windows filter storage driver" to "windowsfilter".

Signed-off-by: John Starks <jostarks@microsoft.com>
Upstream-commit: f182748b9b7d639c4db09f4f72411aba5f811f4e
Component: engine
2016-05-27 16:24:02 -07:00
2aa8db7718 Merge pull request #23067 from shishir-a412ed/fix_commit_issue
Fixes Issue # 22992: docker commit failing
Upstream-commit: b1f8b45b8ff7e7f3dda116fcde3067cc8fc0afb0
Component: engine
2016-05-27 15:06:29 -07:00
c18e25c7fa Merge pull request #22716 from jmzwcn/issue22466-patches
Embedded DNS problem after renaming container. Step2:change in docker…
Upstream-commit: 4441a6c4c68f6ec7acb0e2d92d72274fbf403425
Component: engine
2016-05-27 23:27:42 +02:00
561b16903d Merge pull request #22438 from yongtang/22420-inconsistent-tmpfs-behavior
Inconsistent --tmpfs behavior
Upstream-commit: ec3ccde18bb2b46f9d2e74fad61e7286aa292123
Component: engine
2016-05-27 15:54:37 -04:00
bd261166b3 Fixes Issue # 22992: docker commit failing.
1) docker create / run / start: this would create a snapshot device and mounts it onto the filesystem.
So the first time GET operation is called. it will create the rootfs directory and return the path to rootfs
2) Now when I do docker commit. It will call the GET operation second time. This time the refcount will check
that the count > 1 (count=2). so the rootfs already exists, it will just return the path to rootfs.

Earlier it was just returning the mp: /var/lib/docker/devicemapper/mnt/{ID} and hence the inconsistent paths error.

Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
Upstream-commit: 09d0720e2fb6e30ee018887399f353f93ac2d421
Component: engine
2016-05-27 14:35:46 -04:00
0c9b356dc5 Merge pull request #23030 from Microsoft/jjh/xenonworkdir
Windows: Default isolation and workdir
Upstream-commit: 1d87f788b1d544d388d599316f9999867c4c3c80
Component: engine
2016-05-27 11:31:36 -04:00
fe69a90880 Moving some more methods away from daemon.go
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: bfa0885c37efe5734d93f5bbb9e6477f66358e7c
Component: engine
2016-05-27 11:32:26 +02:00
d460ba90a2 Validate filter values before calling registry.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: cd012efa2e46ec82b7a1f742bfc6858513c4ee37
Component: engine
2016-05-27 11:13:12 +02:00
6d3d3f4514 Merge pull request #22993 from rhatdan/relabel
Multiple fixes for SELinux labels.
Upstream-commit: 3f6fa8af4522ba9b5ce2e4a52f959970ae4ccb8a
Component: engine
2016-05-26 22:51:17 -04:00
0e099055bb Inconsistent --tmpfs behavior
This fix tries to address the issue raised in #22420. When
`--tmpfs` is specified with `/tmp`, the default value is
`rw,nosuid,nodev,noexec,relatime,size=65536k`. When `--tmpfs`
is specified with `/tmp:rw`, then the value changed to
`rw,nosuid,nodev,noexec,relatime`.

The reason for such an inconsistency is because docker tries
to add `size=65536k` option only when user provides no option.

This fix tries to address this issue by always pre-progating
`size=65536k` along with `rw,nosuid,nodev,noexec,relatime`.
If user provides a different value (e.g., `size=8192k`), it
will override the `size=65536k` anyway since the combined
options will be parsed and merged to remove any duplicates.

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

This fix fixes #22420.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 397a6fefadf9ac91a5c9de2447f4dea607296470
Component: engine
2016-05-26 19:28:18 -07:00
a658ae4b8f Windows: Default isolation and workdir
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 6952135fc8004f669c962c5989fd2e5a05bb2510
Component: engine
2016-05-26 13:24:22 -07:00
b44b316db0 Invert CgroupDevicesEnabled condition
It feels better to test where it's required than listing everywhere it
is not required.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 72fefc0441d57b59f27bebdb144e0e35c0c63a0d
Component: engine
2016-05-26 13:09:11 +02:00
6e20543be2 Merge pull request #22861 from vdemeester/daemon-images-search-refactoring
Daemon images search refactoring
Upstream-commit: 75109b32db4c23f469b57fb99300fc5d4a689dce
Component: engine
2016-05-26 12:34:31 +02:00