Commit Graph
5013 Commits
Author SHA1 Message Date
Yong Tang a603b90d7f Add --force in docker volume rm to fix out-of-band volume driver deletion
This fix tries to address the issue in raised #23367 where an out-of-band
volume driver deletion leaves some data in docker. This prevent the
reuse of deleted volume names (by out-of-band volume driver like flocker).

This fix adds a `--force` field in `docker volume rm` to forcefully purge
the data of the volume that has already been deleted.

Related documentations have been updated.

This fix is tested manually with flocker, as is specified in #23367.
An integration test has also been added for the scenario described.

This fix fixes #23367.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 6c5c34d50d377d1c5318a255240fb2dc9c23cf92
Component: engine
2016-08-18 18:01:25 -07:00
Denis Gladkikh 3029b07f3e Splunk Logging Driver: PR feedback
Signed-off-by: Denis Gladkikh <denis@gladkikh.email>
Upstream-commit: 9407322972a93fa5a47436a8a9f0133b49806e6c
Component: engine
2016-08-18 09:17:06 -07:00
Vincent Demeester 46a42da7e0 Merge pull request #25785 from WeiZhang555/fix-flaky-external-volume-driver
bugfix: report "destroy" after all volumes of container destroy
Upstream-commit: 3cebff8b869d2720b12618ef5bff22fa4f0fd4a6
Component: engine
2016-08-18 09:58:54 +02:00
Michal Wieczorek da10d8cdee Enable syslog driver for windows
Signed-off-by: Michal Wieczorek <wieczorek-michal@wp.pl>
Upstream-commit: eac70703e3f46f825354f03cac93206497143350
Component: engine
2016-08-17 22:26:24 +02:00
Michael Crosby 6c683fac48 Replace old oci specs import with runtime-specs
Fixes #25804

The upstream repo changed the import paths.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: 041e5a21dc0a8856448e3a9ad91e8535b8a7d00d
Component: engine
2016-08-17 09:38:34 -07:00
Phil Estes a410528fcc Merge pull request #25771 from mrunalp/allow_host_ns_with_user
Allow using --pid=host and --net=host when --userns=host
Upstream-commit: 3473980a295067c8a265feff83be2ee306afaceb
Component: engine
2016-08-17 09:57:30 -04:00
Denis Gladkikh e85d8b261b Splunk Logging Driver: formats and verifyconnection
`--log-opt splunk-format=inline|json|raw` allows to change how logging
driver sends data to Splunk, where

`inline` - default value, format used before, message is injected as a
line in JSON payload
`json` - driver will try to parse each line as a JSON object and embed it
inside of the JSON payload
`raw` - driver will send Raw payload instead of JSON, tag and attributes
will be prefixed before the message

`--log-opt splunk-verify-connection=true|false` - allows to skip
verification for Splunk Url

Signed-off-by: Denis Gladkikh <denis@gladkikh.email>
Upstream-commit: 603fd0831513257bc26d20ca1f64efcc4965eae6
Component: engine
2016-08-16 21:45:16 -07:00
Zhang Wei bf5e17ead0 bugfix: report "destroy" after all volumes of container destroy
fixes #25766

If a container's AutoRemove is enabled, client will wait until it's
removed after container exits, this is implemented based on "destroy"
event.

Currently an "AutoRemove" container will report "destroy" event to
notify a hanging client to exit before all volumes are removed, this is
wrong, we should wait container until everything is cleaned up.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: 4df77c11e065bf96b04fc0328a7e7600a2e64937
Component: engine
2016-08-17 11:02:16 +08:00
Brian Goff a0933c7d27 Merge pull request #25721 from cpuguy83/revendor_engine-api
revendor engine-api
Upstream-commit: 37302bbb3f4889e9de2a95d5ea018acdab9e4447
Component: engine
2016-08-16 17:18:43 -04:00
Mrunal Patel d2ee183037 Allow using --pid=host and --net=host when --userns=host
It is safe to set other namespaces to host when user ns is set to host

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
Upstream-commit: 3c3d2bf85229f9ca4879a24072762477e96c4344
Component: engine
2016-08-16 14:16:14 -07:00
Brian Goff 3dcc0abf19 revendor engine-api
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 6d98e344c7702a8a713cb9e02a19d83a79d3f930
Component: engine
2016-08-16 14:16:12 -04:00
Brian Goff 0f2f3d0378 Merge pull request #25746 from lixiaobing10051267/masterName
wrong id when testing exists in daemon aufs
Upstream-commit: d7753dceb814e92c20a067df51fd231fe2d0fda9
Component: engine
2016-08-16 13:00:03 -04:00
lixiaobing10051267 060a7d7824 wrong id when testing exists in daemon aufs
Signed-off-by: lixiaobing10051267 <li.xiaobing1@zte.com.cn>
Upstream-commit: cdb6c59eda4e78d626721a6a38fd305a6d2c50f3
Component: engine
2016-08-16 16:42:45 +08:00
Brian Goff ab16b6c61a Fix issues with tailing rotated jsonlog file
Fixes a race where the log reader would get events for both an actual
rotation as we from fsnotify (`fsnotify.Rename`).
This issue becomes extremely apparent when rotations are fast, for
example:

```
$ docker run -d --name test --log-opt max-size=1 --log-opt max-file=2
busybox sh -c 'while true; do echo hello; usleep 100000; done'
```

With this change the log reader for jsonlogs can handle rotations that
happen as above.

Instead of listening for both fs events AND rotation events
simultaneously, potentially meaning we see 2 rotations for only a single
rotation due to channel buffering, only listen for fs events (like
`Rename`) and then wait to be notified about rotation by the logger.
This makes sure that we don't see 2 rotations for 1, and that we don't
start trying to read until the logger is actually ready for us to.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 84e60a7e10278e3acd2b783d0e6955dc5198b57c
Component: engine
2016-08-15 13:57:28 -04:00
Serge Hallyn cc5b6aa3dd Don't create devices if in a user namespace
If we are running in a user namespace, don't try to mknod as
it won't be allowed.  libcontainer will bind-mount the host's
devices over files in the container anyway, so it's not needed.

The chrootarchive package does a chroot (without mounting /proc) before
its work, so we cannot check /proc/self/uid_map when we need to.  So
compute it in advance and pass it along with the tar options.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Upstream-commit: 617c352e9225b1d598e893aa5f89a8863808e4f2
Component: engine
2016-08-12 16:26:58 -04:00
Brian Goff 05ad7877f1 Merge pull request #24814 from samuelkarp/awslogs
awslogs: Record log line insert order for sorting
Upstream-commit: c6e3818dd11a19b8385e62ed244c0c4e4e75fc89
Component: engine
2016-08-12 15:51:06 -04:00
Michael Crosby 0cdcb92bda Merge pull request #22208 from msabansal/staticip
Enabling specifying static ip for predefined network on windows
Upstream-commit: 5632768a0f5237ca63275a193266389b7cabcb3b
Component: engine
2016-08-12 11:39:25 -07:00
Brian Goff e8a6674a00 Merge pull request #25635 from dperny/rate-limit-swarm-pull-log
Rate limit logspam during docker service pulls
Upstream-commit: b0431d63dca1573d66624dd67230bf0d9c8ef623
Component: engine
2016-08-12 13:06:39 -04:00
Michael Crosby c49627f859 Merge pull request #25628 from cpuguy83/carry_21567_filter_vol_by_label
Carry 21567 filter vol by label
Upstream-commit: be045ee2da7c2c83e859d86cb496e86ec6de8566
Component: engine
2016-08-12 09:43:45 -07:00
Michael Crosby 1dbc55e6ff Merge pull request #25509 from Microsoft/jjh/23079
Windows: Block ReFS file systems
Upstream-commit: 34cc19f6702c23b2ae4aad2b169ca64154404f9f
Component: engine
2016-08-12 09:32:22 -07:00
Drew Erny 95f97c43df Rate limit logspam during docker service pulls
During image pulls on docker service create, logs will only show status
updates and updates every 1 second on long-running actions like
downloading and extracting. Adds golang.org/x/time/rate as dependency.

Ports docker/swarmkit#1352 to docker/docker.

Signed-off-by: Drew Erny <drew.erny@docker.com>
Upstream-commit: fa0054a3eb0363526d34fb4ac912cab30044f3d7
Component: engine
2016-08-11 14:56:38 -07:00
Brian Goff 6b32efbe7a Carry #21567
Use `LabeledVolume` interface type instead of manual interface.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 6d787dae1ae3cd4f2ca062b67592158597f9d40e
Component: engine
2016-08-11 13:47:01 -04:00
Kai Qiang Wu(Kennan) 29b14d83fb Add label filter support for volume
Since we added labels for volume, it is desired to have
filter support label for volume

Closes: #21416
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
Upstream-commit: 1a72934cd5cb369f75e7bd5714eb579a053b95a9
Component: engine
2016-08-11 13:08:04 -04:00
Dan Walsh f739281994 Linux upstream kernel Overlay file systems support SELinux
Remove checks that prevent overlay and SELinux from working together.
Fixes are arriving in the 4.9 kernel.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
Upstream-commit: b71cd179fa7651a48955d3879fae647d6d933bf0
Component: engine
2016-08-11 11:40:19 -04:00
Tonis Tiigi 28fcc3f1f9 Update executor fixes from swarmkit
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 5673c53417d689704ca7b5715f5c4d549fdf710c
Component: engine
2016-08-10 13:27:38 -07:00
Tibor Vass db498d9dca Merge pull request #25550 from mrjana/net
Retry creating dynamic networks if not found
Upstream-commit: 92b10b497cf272f8fd307e2e6cc1f27199f132cd
Component: engine
2016-08-10 11:52:56 -07:00
Alexander Morozov cb1c855c27 Merge pull request #23951 from allencloud/defer-os-file-close
add defer file.Close to avoid potential fd leak
Upstream-commit: 64605d709f9bf5677d513d6ed78d63fffadc697d
Component: engine
2016-08-10 11:07:15 -07:00
allencloud 1c502571ef add defer file.Close to avoid potential fd leak
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: 0ead624473b6bddc232b46bc7c76ab4f9c743ff5
Component: engine
2016-08-10 08:36:09 +08:00
Jana Radhakrishnan 1ea11295f3 Retry creating dynamic networks if not found
In cases there are failures in task start, swarmkit might be trying to
restart the task again in the same node which might keep failing. This
creates a race where when a failed task is getting removed it might
remove the associated network while another task for the same service
or a different service but connected to the same network is proceeding
with starting the container knowing that the network is still
present. Fix this by reacting to `ErrNoSuchNetwork` error during
container start by trying to recreate the managed networks. If they
have been removed it will be recreated. If they are already present
nothing bad will happen.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
Upstream-commit: 117cef5e9766d6ba228770c225e816c6afd16ff8
Component: engine
2016-08-09 13:37:11 -07:00
Sebastiaan van Stijn fe7b1d72f0 Merge pull request #23391 from Microsoft/WindowsSandboxSize
Windows: Added support for storage-opt size
Upstream-commit: 04e021d7511fcfdc0838a0165f70a4772c0e7718
Component: engine
2016-08-09 15:34:39 +02:00
John Howard a4fc4e13d8 Windows: Block ReFS file systems
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 1cb9e9b44e7140d14dd42d48b2a7c038b65e8f16
Component: engine
2016-08-08 14:30:37 -07:00
Vincent Demeester b2d7ec8107 Merge pull request #20848 from WeiZhang555/move-rm-to-daemon
Move --rm to daemon side
Upstream-commit: 31e3970394998547d64e1220bd437a4c9c1061e3
Component: engine
2016-08-08 22:11:06 +02:00
Sebastiaan van Stijn 0d2b77587c fix validation of non-existing bind-mount source
Unlike `docker run -v..`, `docker service create --mount`
does not allow bind-mounting non-existing host paths.

This adds validation for the specified `source`, and
produces an error if the path is not found on the
host.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 84d5ab96ef33355e65f5c31210eb1777db372c52
Component: engine
2016-08-08 17:24:00 +02:00
Zhang Wei cc46dbc03c Not use goroutine for container's auto-removal
Before this, container's auto-removal after exit is done in a goroutine,
this commit will get ContainerRm out of the goroutine.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: 1537dbe2d617013c94aa42c28744feb07a09fb63
Component: engine
2016-08-08 22:46:53 +08:00
Zhang Wei 34a323258f Wait container's removal via Events API
If AutoRemove is set, wait until client get `destroy` events, or get
`detach` events that implies container is detached but not stopped.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: 6dd8e10d6ed7a7371c5c1824ad58c4403a7b3bfd
Component: engine
2016-08-08 22:46:53 +08:00
Zhang Wei b27f1b6d73 Move --rm to daemon side
`--rm` is a client side flag which caused lots of problems:
1. if client lost connection to daemon, including client crash or be
killed, there's no way to clean garbage container.
2. if docker stop a `--rm` container, this container won't be
autoremoved.
3. if docker daemon restart, container is also left over.
4. bug: `docker run --rm busybox fakecmd` will exit without cleanup.

In a word, client side `--rm` flag isn't sufficient for garbage
collection. Move the `--rm` flag to daemon will be more reasonable.

What this commit do is:
1. implement a `--rm` on daemon side, adding one flag `AutoRemove` into
HostConfig.
2. Allow `run --rm -d`, no conflicting `--rm` and `-d` any more,
auto-remove can work on detach mode.
3. `docker restart` a `--rm` container will succeed, the container won't
be autoremoved.

This commit will help a lot for daemon to do garbage collection for
temporary containers.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: 3c2886d8a45d8e79b00ab413d91f1af871b58d0a
Component: engine
2016-08-08 22:46:53 +08:00
Sebastiaan van Stijn 63356b5588 Merge pull request #23718 from yongtang/23498-entrypoint-unset
Allow unset `--entrypoint` in `docker run` or `docker create`
Upstream-commit: 2684459ed433125257ffde5e95666ff785f26ec2
Component: engine
2016-08-08 14:38:01 +02:00
johnharris85 a3566ce47a Move restart-policy validation from client to daemon.
Signed-off-by: John Harris <john@johnharris.io>
Upstream-commit: 94e95e4711643640701bd614902e75a2d01f12c5
Component: engine
2016-08-06 20:09:47 -07:00
Yong Tang 0c94d9d1e8 Allow unset --entrypoint in docker run or docker create
This fix tries to address the issue raised in #23498 to allow unset
`--entrypoint` in `docker run` or `docker create`.

This fix checks the flag `--entrypoint` and, in case `--entrypoint=` (`""`)
is passed, unset the Entrypoint during the container run.

Additional integration tests have been created to cover changes in this fix.

This fix fixes #23498.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: c8d3ee80933d6337382fb4a52d90835e263c1aaf
Component: engine
2016-08-05 16:35:20 -07:00
Yong Tang c892df89ab Sanitize docker labels when used as journald field names
This fix tries to address the issue raised in #23528 where
docker labels caused journald log error because journald
has special requirements on field names.

This fix addresses this issue by sanitize the labels per
requirements of journald.

Additional unit tests have been added to cover the changes.

This fix fixes #23528.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 9528ea930cdb90f906230a6d4cab179001255927
Component: engine
2016-08-05 15:20:47 -07:00
Alexander Morozov 32be738fe0 Merge pull request #25090 from swernli/rootfs-cleanup
Removing old custom RootFS behavior on Windows.
Upstream-commit: 6c07fbd455cef4a5bda34ced4f0364639667db4d
Component: engine
2016-08-05 10:55:44 -07:00
Vincent Demeester 823b6241c7 Merge pull request #25387 from yongtang/25374-ps-filter-order
Sort output of `docker ps --filter` with order by creation time
Upstream-commit: 29fef34139a4be9235a245a85e98c8a3b9432f2d
Component: engine
2016-08-05 14:47:10 +02:00
Sebastiaan van Stijn eee1f8867e Merge pull request #25279 from aboch/auto
Only consider netlink "device" interfaces in address autodetection on Linux
Upstream-commit: acbac04c4bddb6861155ebdb28df1c19b50e5bdc
Component: engine
2016-08-05 14:13:53 +02:00
Yong Tang 87b0575d6c Sort output of docker ps --filter with order by creation time
This fix tries to address the issue raised in 25374 where the
output of `docker ps --filter` is in random order and
not deterministic.

This fix sorts the list of containers by creation time so that the
output is deterministic.

An integration test has been added.

This fix fixes 25374.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 3f971335463b99a7caedcf597ffc544845b37a21
Component: engine
2016-08-04 19:27:50 -07:00
Tõnis Tiigi 51a2e7806a Merge pull request #25309 from cpuguy83/25253_fix_accidental_bind_create
Validate mount paths on task create
Upstream-commit: e10f6a2e549cda2d4f8fc7ee23c91dc7a21bb967
Component: engine
2016-08-03 15:54:03 -07:00
Sebastiaan van Stijn e730a09366 Merge pull request #23497 from shishir-a412ed/dm_task_run_failed
Fixes Issue # 23418: Race condition between device deferred removal and resume device.
Upstream-commit: 87e48ecd048c0b083fe09fb8d74c83364abd41e6
Component: engine
2016-08-03 21:54:33 +02:00
Samuel Karp 69607140e9 awslogs: Record log line insert order for sorting
Fixes https://github.com/docker/docker/issues/24775

Signed-off-by: Samuel Karp <skarp@amazon.com>
Upstream-commit: 443f251cf596006fe4cb621dcab955f7da0a2a00
Component: engine
2016-08-03 10:04:20 -07:00
Samuel Karp 7444e549e3 awslogs: Add unit test to ensure log line order
Signed-off-by: Samuel Karp <skarp@amazon.com>
Upstream-commit: 5ba6cab0a9b9e51029fd48858ba6722103356b1a
Component: engine
2016-08-03 10:01:12 -07:00
Sebastiaan van Stijn 15ac980cd0 Merge pull request #25159 from diogomonica/adding-force-to-node-remove
Adding force to node rm
Upstream-commit: 10ae908bfa88bf128ce416067391ed125ad0f1be
Component: engine
2016-08-02 22:49:15 +02:00
Alessandro Boch 4005e65c50 Only consider "device" interfaces in address autodetection on Linux
- This automatically rules out bridges and other non system
  created interfaces

Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 8f7d3a43807890e690c31e33dad3764911e1491f
Component: engine
2016-08-02 10:54:43 -07:00