Commit Graph

254 Commits

Author SHA1 Message Date
744dbdd6f9 Mount bind volumes coming from the old volumes configuration.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 53d9609de472f2fc9e6aaef2b713f526605f4ab8
Component: engine
2015-05-28 14:06:17 -07:00
1f5c180c11 Merge pull request #12572 from jfrazelle/selinux-labels-carry
Modify volume mounts SELinux labels on the fly based on :Z or :z
Upstream-commit: ec471a7c9b307eb656aeb69ef00910b2fb388e1c
Component: engine
2015-05-27 14:46:16 -07:00
c59e5318a9 Use SELinux labels for volumes
Fixes a regression from the volumes refactor where the vfs graphdriver
was setting labels for volumes to `s0` so that they can both be written
to by the container and shared with other containers.
When moving away from vfs this was never re-introduced.
Since this needs to happen regardless of volume driver, this is
implemented outside of the driver.

Fixes issue where `z` and `Z` labels are not set for bind-mounts.

Don't lock while creating volumes

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: b2a43baf2e2cc68c83383a7524441f81bc4c4725
Component: engine
2015-05-27 13:43:38 -07:00
c6b125f030 Merge pull request #13449 from duglin/FixRaceInStop
Fix race condition on container stop
Upstream-commit: f5d33118394464e52eb29c781c1a8bb9345778c8
Component: engine
2015-05-27 13:05:53 -07:00
f26677f4cf Do not force syscall.Unmount on container cleanup.
This is not necessary and it's a regression from the old behavior.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: f78dce152c3c67bf262648028ff7932ca461b6fd
Component: engine
2015-05-26 14:28:26 -07:00
a749f0fc90 Windows: Fix up container again
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 5d207de5092f4532a1696939fdb64a85d370fb01
Component: engine
2015-05-26 09:33:55 -07:00
85527e5274 Fix race condition on container stop
I'm fairly consistently seeing an error in
DockerSuite.TestContainerApiRestartNotimeoutParam:

docker_api_containers_test.go:969:
    c.Assert(status, check.Equals, http.StatusNoContent)
    ... obtained int = 500
    ... expected int = 204

And in the daemon logs I see:
INFO[0003] Container 8cf77c20275586b36c5095613159cf73babf92ba42ed4a2954bd55dca6b08971 failed to exit within 0 seconds of SIGTERM - using the force
ERRO[0003] Handler for POST /containers/{name:.*}/restart returned error: Cannot restart container 8cf77c20275586b36c5095613159cf73babf92ba42ed4a2954bd55dca6b08971: [2] Container does not exist: container destroyed

ERRO[0003] HTTP Error                                    err=Cannot restart container 8cf77c20275586b36c5095613159cf73babf92ba42ed4a2954bd55dca6b08971: [2] Container does not exist: container destroyed
 statusCode=500

Note the "container destroyed" error message.  This is being generatd by
the libcontainer code and bubbled up in container.Kill() as a result of the
call to `container.killPossiblyDeadProcess(9)` on line 439.

See the comment in the code, but what I think is going on is that because we
don't have any timeout on the Stop() call we immediate try to force things to
stop. And by the time we get into libcontainer code the process just finished
stopping due to the initial signal, so this secondary sig-9 fails due to the
container no longer running (ie. its 'destroyed').

Since we can't look for "container destroyed" to just ignore the error, because
some other driver might have different text, I opted to just ignore the error
and keep going - with the assumption that if it couldnt send a sig-9 to the
process then it MUST be because its already dead and not something else.

To reproduce this I just run:
curl -v -X POST http://127.0.0.1:2375/v1.19/containers/8cf77c20275586b36c5095613159cf73babf92ba42ed4a2954bd55dca6b08971/restart

a few times and then it fails with the HTTP 500.

Would like to hear some other ideas on to handle this since I'm not
thrilled with the proposed solution.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 29bdcaf3cfe0f4bfeed9f7f59ca8f6ad2f41dfd9
Component: engine
2015-05-25 04:28:23 -07:00
fd9e9a6b5b Propagate unmount events to the external volume drivers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: d592778f4a75d36745aaffaf73c0775ecd420545
Component: engine
2015-05-22 16:43:34 -07:00
778241cd3a Make API volume-driver dependent on 'experimental'
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: 2653c7c16cf87029c7e2e35427fbd1c83a0c96ba
Component: engine
2015-05-21 20:34:17 -07:00
89782c55eb Volumes refactor and external plugin implementation.
Signed by all authors:

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Signed-off-by: David Calavera <david.calavera@gmail.com>
Signed-off-by: Jeff Lindsay <progrium@gmail.com>
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Signed-off-by: Luke Marsden <luke@clusterhq.com>
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 81fa9feb0cdc0773eff99d7393c16271e84aac08
Component: engine
2015-05-21 20:34:17 -07:00
13426de5e6 Docker integration with libnetwork
- Updated Dockerfile to satisfy libnetwork GOPATH requirements.
    - Reworked daemon to allocate network resources using libnetwork.
    - Reworked remove link code to also update network resources in libnetwork.
    - Adjusted the exec driver command population to reflect libnetwork design.
    - Adjusted the exec driver create command steps.
    - Updated a few test cases to reflect the change in design.
    - Removed the dns setup code from docker as resolv.conf is entirely managed
      in libnetwork.
    - Integrated with lxc exec driver.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
Upstream-commit: d18919e304c240df84502cdcc5ed655d92d12d4f
Component: engine
2015-05-19 22:40:19 +00:00
249d122d71 Merge pull request #12884 from Microsoft/10662-startcontainerrefactor
Windows: Refactor container
Upstream-commit: 0cc5da0635880245420333d6ec43cea75f2f3afd
Component: engine
2015-05-19 10:44:23 -07:00
bcf5956dfc Pass -log-opts map to logdrivers
Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 8b11592d699df669b529e34658ef2d870c8a75f8
Component: engine
2015-05-18 16:50:14 +00:00
c4f071bd48 Windows: Refactor container
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: b9e4b95788e0d8eae5363b82f301dafb9ea687f7
Component: engine
2015-05-16 12:38:20 -07:00
ab675e423e Merge pull request #12667 from ibuildthecloud/host-uts
Add --uts=host to allow sharing the UTS namespace
Upstream-commit: ed257420025772acc38c51b0f018de3ee5564d0f
Component: engine
2015-05-13 18:30:32 -07:00
dc9bbf77b5 Add --uts=host to allow sharing the UTS namespace
Signed-off-by: Darren Shepherd <darren@rancher.com>
Upstream-commit: f2e5207fc989288ad136d48222df8e7754eb0e9b
Component: engine
2015-05-13 17:56:32 -07:00
b1b57c9cd4 daemon: Logging drivers refactoring
- noplog driver pkg for '--log-driver=none' (null object pattern)
- centralized factory for log drivers (instead of case/switch)
- logging drivers registers themselves to factory upon import
  (easy plug/unplug of drivers in daemon/logdrivers.go)
- daemon now doesn't start with an invalid log driver
- Name() method of loggers is actually now their cli names (made it useful)
- generalized Read() logic, made it unsupported except json-file (preserves
  existing behavior)

Spotted some duplication code around processing of legacy json-file
format, didn't touch that and refactored in both places.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 3a8728b431df07249ad913ea9a12e27dc39b8956
Component: engine
2015-05-12 19:11:52 +00:00
baa93a3d54 Merge pull request #13000 from runcom/refactor-server-to-use-daemon-service-followup
Refactor server to use the daemon as a service
Upstream-commit: 3b13e56fd7c6542ae535d83c12939c46bd40e2ad
Component: engine
2015-05-12 10:27:43 -07:00
12071c528f Move container.WaitStop, AttachWithLogs and WsAttachWithLogs to daemon service in api server
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
Upstream-commit: e2acca67c8e089429c8a5d5171887e5de42e3917
Component: engine
2015-05-11 19:56:41 +02:00
ceedb9d4b8 Merge pull request #13101 from bharaththiruveedula/13092-remove-unwanted-locks
Removing extra locks for Pause and Unpause functions
Upstream-commit: 5e063326a345349b406791a6822f6423e17c353d
Component: engine
2015-05-11 10:54:39 -07:00
fc89bcb4ca Removing extra locks for Pause and Unpause functions
Signed-off-by: Bharath Thiruveedula <bharath_ves@hotmail.com>
Upstream-commit: 8c1ef5ceafcba2476693db7f5db39300ad2e7f88
Component: engine
2015-05-10 00:16:54 +05:30
a40ebffc52 Merge pull request #12988 from Mashimiao/remove-unused-container-functions
cleanup: remove unneeded locks
Upstream-commit: 340fd140e67901c8b5ad9d59c6fb693f6bbcffde
Component: engine
2015-05-09 09:42:27 -07:00
87d85e4c09 cleanup remove unneeded locks
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
Upstream-commit: bcc24ec8ad26ebb3564eb462fd80654964ff4651
Component: engine
2015-05-09 10:06:53 +08:00
560ba9b809 add cpu.cfs_period_us support
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
Upstream-commit: dccb8b5c339e218222bae4ce74bbeccb9e020c82
Component: engine
2015-05-09 10:02:46 +08:00
92cec4b2c1 Merge pull request #11516 from coolljt0725/add_show_error_set_some_flag_in_container_netmode
add support --net=container with --mac-address, --add-host error out
Upstream-commit: 6b6a26c7697978bf7d43fec11d14ef6ee7e3e4d6
Component: engine
2015-05-07 17:13:32 -07:00
5c2686119c Merge pull request #11802 from hqhq/hq_add_blkio_weight
add blkio.weight support
Upstream-commit: de32f5c431bbdb56d6a446af0e5660fae9539bd8
Component: engine
2015-05-07 17:10:39 -07:00
9fb1f7589d Merge pull request #12175 from dqminh/fix-allocate-port
#12148: sort ports mapping before allocating
Upstream-commit: e03ac8d5b98f525c3d32bb5a6ac84b2c5717a0dc
Component: engine
2015-05-07 17:04:20 -07:00
2ee6387cbc Merge pull request #12165 from icecrime/optional_userland_proxy
Optional userland proxy
Upstream-commit: 74bfa3675353aaf10ca760e82a79d758bea0ff6b
Component: engine
2015-05-07 14:01:16 -07:00
4f3515319b add blkio.weight support
We can use this to control block IO weight of a container.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Upstream-commit: f133f11a7d25e6262558dd733afaa95ddd1c7aee
Component: engine
2015-05-07 11:55:58 +08:00
49e7e90010 Add support --net=container with --mac-address,--add-host error out
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: 0e08e9aca14a4ca7142fa4649983302d93b55dab
Component: engine
2015-05-05 19:28:40 +08:00
d7e8665b03 Add --userland-proxy daemon flag
The `--userland-proxy` daemon flag makes it possible to rely on hairpin
NAT and additional iptables routes instead of userland proxy for port
publishing and inter-container communication.

Usage of the userland proxy remains the default as hairpin NAT is
unsupported by older kernels.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: f42348e18f73d1d775d77ac75bc96466aae56d7c
Component: engine
2015-05-04 16:07:45 -07:00
366be0f240 Merge pull request #12865 from larsks/bug/12864
journald log driver: use CONTAINER_ID field for container id
Upstream-commit: 0c1c2726876bdffad4e600456f07e256bc1361a1
Component: engine
2015-05-04 10:53:58 -07:00
5221178681 Merge pull request #12958 from Mashimiao/cleanup-container-functions
Cleanup: move container's functions to its own file
Upstream-commit: 4f5272320cef76dd33a3895f228e2080d9d3a13b
Component: engine
2015-05-04 09:36:55 -07:00
5306450032 cleanup: move container's functions to its file
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
Upstream-commit: 1be7a10b89506afdcb80f109f323b6e47d2e466c
Component: engine
2015-05-04 21:37:44 +08:00
ad3d66108b Feature: option for disable OOM killer
Add cgroup support for disable OOM killer.

Signed-off-by: Hu Keping <hukeping@huawei.com>
Upstream-commit: a4a924e1b6c50f0f02460489259d73468a6c282e
Component: engine
2015-05-04 21:11:29 +08:00
72fc3b7751 journald log driver: use CONTAINER_ID field for container id
This patch modifies the journald log driver to store the container ID in
a field named CONTAINER_ID, rather than (ab)using the MESSAGE_ID field.
Additionally, this adds the CONTAINER_ID_FULL field containing the
complete container ID and CONTAINER_NAME, containing the container name.

When using the journald log driver, this permits you to see log messages
from a particular container like this:

    # journalctl CONTAINER_ID=a9238443e193

Example output from "journalctl -o verbose" includes the following:

    CONTAINER_ID=27aae7361e67
    CONTAINER_ID_FULL=27aae7361e67e2b4d3864280acd2b80e78daf8ec73786d8b68f3afeeaabbd4c4
    CONTAINER_NAME=web

Closes: #12864
Signed-off-by: Lars Kellogg-Stedman <lars@redhat.com>
Upstream-commit: 869ecba652294e069874c83591d6f1b469d7cc32
Component: engine
2015-04-30 10:42:27 -04:00
17d88307f9 sort ports mapping before allocating
prioritize the ports with static mapping before dynamic mapping. This removes
the port conflicts when we allocate static port in the reserved range
together with dynamic ones.
When static port is allocated first, Docker will skip those when determining
free ports for dynamic ones.

Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com>
Upstream-commit: cd2b019214eb1978ae267786668dc7a8a3702679
Component: engine
2015-04-30 02:18:04 +00:00
016ac4bf61 Remove engine mechanism
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
Upstream-commit: 531f4122bdcd4de289f613a5ef010f4c1989f098
Component: engine
2015-04-30 01:35:16 +02:00
12da32d151 Merge pull request #11190 from cyphar/expose-path-sanitisation-wrappers
Expose the getResourcePath and getRootResourcePath wrappers.
Upstream-commit: d2f0b9ed976987576483387bc919cb7ffbfa38e8
Component: engine
2015-04-28 18:45:36 -04:00
954f940156 Small if err cleaning
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
Upstream-commit: 844538142d95c1b7dda1bb2903179510105fe9b5
Component: engine
2015-04-27 21:50:33 +02:00
270e43ec62 Prevent deadlock on attempt to use own net
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
Upstream-commit: f30d1c1835618eadea5d0a68d1301dffd9f09b22
Component: engine
2015-04-27 14:57:37 +01:00
0e89e62feb *: expose getResourcePath and getRootResourcePath wrappers
Due to the importance of path safety, the internal sanitisation wrappers
for volumes and containers should be exposed so other parts of Docker
can benefit from proper path sanitisation.

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> (github: cyphar)
Upstream-commit: 4377ebd6a758278c1766006c7eb8b777fa175719
Component: engine
2015-04-24 23:53:47 +10:00
03223ccad9 Merge pull request #12557 from rhatdan/journald
Add journald as a supported logger for containers
Upstream-commit: 3dc07162bdb457c86c0d5025d1d633131fadcfd1
Component: engine
2015-04-22 17:20:10 -07:00
2cd5fc4ea7 Merge pull request #10992 from cpuguy83/add_volume_mounting_for_cp
Make `docker cp` bind-mount volumes
Upstream-commit: 1d48cccc996885fe02b4824d9421735566a52088
Component: engine
2015-04-22 15:59:28 -07:00
bfa8bbb7bb Merge branch 'master' of github.com:docker/docker into journald
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
Upstream-commit: b88b2fa72ea4ad579478080ce6f027e55cfd5c29
Component: engine
2015-04-22 17:37:26 -04:00
7c675b1db2 Remove not needed call to container.readHostConfig()
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
Upstream-commit: a3c4801c9291c0db78c5cc0748d5d2dd5e44a98f
Component: engine
2015-04-21 22:00:33 +02:00
b04ccc089c Add journald as a supported logger for containers
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
Upstream-commit: 364287b74118de4f04d049426ef37fa9936d2065
Component: engine
2015-04-21 12:57:54 -04:00
f8f4bcdb38 Add support cpu cfs quota
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: dcc50e1d593fd7995189872791c6d7a013f16970
Component: engine
2015-04-20 08:16:47 -07:00
ab74fc7837 Merge pull request #12387 from x1022as/inspect-logpath
Inspect show right LogPath in json-file driver
Upstream-commit: f0c60f7085ea124c2d3660fae17c1d2ab7e4abb0
Component: engine
2015-04-15 14:28:39 -04:00
e04ea19d11 Inspect show right LogPath in json-file driver
Signed-off-by: Deng Guangxing <dengguangxing@huawei.com>
Upstream-commit: acf025ad1b806fd9b5eb3358a8e1d75c6aae890d
Component: engine
2015-04-15 11:51:24 +08:00