Commit Graph

268 Commits

Author SHA1 Message Date
c15db86f61 Add --device flag to allow additional host devices in container
We add a --device flag which can be used like:

 docker run --device /dev/sda:/dev/xvda:rwm ubuntu /bin/bash

To allow the container to have read write permissions to access the host's /dev/sda via a node named /dev/xvda in the container.

Note: Much of this code was written by Dinesh Subhraveti dineshs@altiscale.com (github: dineshs-altiscale) and so he deserves a ton of credit.

Docker-DCO-1.1-Signed-off-by: Timothy <timothyhobbs@seznam.cz> (github: timthelion)
Upstream-commit: e855c4b92170534864b920ec1e267b3a815764f9
Component: engine
2014-07-10 10:35:53 -07:00
b57da60173 Merge pull request #6939 from snitm/thinp-blocksize-fix
devmapper: revert the default dm-thin-pool blocksize back to 64K
Upstream-commit: 840ed5ace28381e61b6b34063f9afb71d63fb6a9
Component: engine
2014-07-10 19:57:07 +03:00
323df0e24b Fix typos
Docker-DCO-1.1-Signed-off-by: Bryan Bess <squarejaw@bsbess.com> (github: squarejaw)
Upstream-commit: 1df4049e17e4a3edf4487b072f2085bc2dd2ee0b
Component: engine
2014-07-09 23:14:06 -05:00
0ee458dda8 devmapper: revert the default dm-thin-pool blocksize back to 64K
Commit 09ee269d ("devmapper: Add option for specifying the thin pool
blocksize") also switched the default dm-thin-pool blocksize from 64K to
512K.  That change unfortunately breaks the activation of dm-thin-pool
devices that were previously created using a 64K blocksize.  Here is an
example of the dm-thin-pool activation failure users may experience:

 device-mapper: thin: 253:4: pool target (204800 blocks) too small: expected 1638400
 device-mapper: table: 253:4: thin-pool: preresume failed, error = -22

The reason for this is docker is passing 512K as the blocksize for a
dm-thin-pool that was previously created using a 64K blocksize.  Docker
doesn't record the blocksize the is used when it creates a dm-thin-pool.
Until now it never had a need to do so because the blocksize was always
hardcoded.  The dm-thin-pool blocksize must be the same every time a
dm-thin-pool is activated.

As a stop-gap fix, revert to using 64K for the default blocksize.

But we do need a proper fix for this now that 'dm.blocksize' is exposed
as a proper storage option.  One possible fix would be to record the
blocksize for each dm-thin-pool that docker creates and to pass that
recorded blocksize down in the dmsetup table load each time the
dm-thin-pool is activated (this would be comparable to what lvm2 does).

Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
Upstream-commit: d715803d45d41bfbbd5faf1f4a8239c08d6d8c90
Component: engine
2014-07-09 16:47:30 -04:00
c1ad27879c Merge pull request #6570 from cpuguy83/add_cpuguy83_as_volumes_maintainer
Add cpuguy83 as volumes maintainer
Upstream-commit: 2d34a08c48b734c17a29c0db2c2aae12ff4f8227
Component: engine
2014-07-09 02:12:14 -07:00
bfe0fa53e6 Merge pull request #6636 from saaadhu/master
Fix typo in README.md
Upstream-commit: f021cd64eda967f7e5a4b3a3f5c99fb7efe49c10
Component: engine
2014-07-08 16:35:26 -07:00
ea789048c6 Merge pull request #6799 from LK4D4/refactor_portallocator
Refactoring portallocator
Upstream-commit: 3993f9d5818f344199c3b13ae8aa9e6bee22479e
Component: engine
2014-07-07 12:39:36 -07:00
6996bb64aa Merge pull request #6821 from LK4D4/broadcast_writer_refactor
Broadcast writer refactor
Upstream-commit: bade039bda0ddff19b14db516ecb210f343243a2
Component: engine
2014-07-07 12:15:47 -07:00
bdbe2e1a2a Merge pull request #6452 from mheon/selinux_btrfs_fix
Error if Docker daemon starts with BTRFS graph driver and SELinux enabled
Upstream-commit: 219a3345deade869a415436c2b5c24c0c523ca08
Component: engine
2014-07-07 11:34:50 -07:00
efbfc9bcff Merge pull request #6645 from snitm/dmthinp-devel
Dmthinp devel
Upstream-commit: 2e4f99d99c34edaba2d37270545af2b8fd753dab
Component: engine
2014-07-07 21:20:31 +03:00
6a68c558b1 Merge pull request #6371 from jpetazzo/6370-masquerade
Select masquerade by outgoing interface rather than by destination subne...
Upstream-commit: bcec0f30e8d7dbb9fcdd6a85fa4b8e4953ba66ff
Component: engine
2014-07-07 10:28:31 -07:00
1485171732 Merge pull request #6756 from kzys/lxc-linux
Skip lxc_template_unit_test.go on non-Linux platforms
Upstream-commit: e2c575c5a618c51f08d457fc227276dcb340e0f0
Component: engine
2014-07-07 18:46:46 +03:00
9b1af46554 Error if Docker daemon starts with BTRFS graph driver and SELinux enabled
The Docker btrfs graph driver does not interact well with SELinux at present.
If btrfs mounts the same file in several locations, the same SELinux label will
be applied to all mountpoints. In the context of the graph driver, things such
as shared libraries become inaccessible to containers due to SELInux, causing
all dynamically linked applications to fail when run in a container.

Consequently, error when we detect the daemon is being run with SELinux enabled
and the btrfs driver. Documentation has been added for this behavior.

Docker-DCO-1.1-Signed-off-by: Matthew Heon <mheon@redhat.com> (github: mheon)
Upstream-commit: 4318802f645cdd4fa63a894160f153a69a97af59
Component: engine
2014-07-03 08:11:18 -04:00
31988404b5 BroadcastWriter refactoring
It became slightly faster and lighter
possibly fixes #5923 problems

Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
Upstream-commit: 7bdd23bfeec1968a3061e63e24af049837baf4c4
Component: engine
2014-07-03 10:12:53 +04:00
c8806a50df I'm going to wish I didn't do this
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
Upstream-commit: fa29b1f062d25c1a8ca62f02b9cc7533df4c7449
Component: engine
2014-07-03 10:31:56 +10:00
4d29e9b718 Move WriteBroadcaster to separate package as BroadcastWriter
Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
Upstream-commit: 9d4e80222144c0aef3e78202ecb4904b3ce5ed9b
Component: engine
2014-07-02 23:31:06 +04:00
ce98881516 fix compilation and panic
Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
Upstream-commit: d403936818b8785b65ff55ebab0d266b4a871ef6
Component: engine
2014-07-02 00:54:08 +00:00
356f6ecbf3 Add backwards READ compatibility for the old libcontainer API
Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
Upstream-commit: cccb64e8633eee309e6ce33c3bb41614edd70d81
Component: engine
2014-07-02 00:19:05 +00:00
e3c0c2772d Refactoring portallocator
Faster, more documented, less code.
Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
Upstream-commit: f387cc1205b79ffbe30b28f5df13da034d8221fd
Component: engine
2014-07-01 21:59:11 +04:00
e49c262737 Merge pull request #6787 from vieux/pause_commit2
Pause/freeze containers during commit
Upstream-commit: cdc62c778f86070d2d62de5055d6288b916136ee
Component: engine
2014-07-01 10:11:18 -07:00
ae1f05d70a Pause/freeze containers during commit
Initiates a pause before committing a container,
adds a pause option to the commit command, defaulting to 'true'.

Fixes bug: #6267
Fixes bug: #3675

Docker-DCO-1.1-Signed-off-by: Eric Windisch <ewindisch@docker.com> (github: ewindisch)
Upstream-commit: 17d870bed5ef997c30da1e8b9843f4e84202f8d4
Component: engine
2014-07-01 00:30:21 +00:00
ce22a9b1ec Use new libcontainer.State API
Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
Upstream-commit: 262d45e0fe483dbc6d27bc6af51590a8be42d55f
Component: engine
2014-06-30 18:27:15 -04:00
37f1c826ae Merge pull request #6682 from erikh/6476-persistent_port_allocation
fix persistent port allocation
Upstream-commit: fef1e0a7089820b06fdc2de3d536fe0e5e41f0cb
Component: engine
2014-06-30 10:14:17 -04:00
a5827383a9 Skip lxc_template_unit_test.go on non-Linux platforms
It doesn't work without lxc-start.

Docker-DCO-1.1-Signed-off-by: Kato Kazuyoshi <kato.kazuyoshi@gmail.com> (github: kzys)
Upstream-commit: dda0ce645995d6dd2b6eb5848c30d305a3d220d2
Component: engine
2014-06-29 17:11:30 +09:00
229de7479e portmapper: unit tests for remap problem
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Upstream-commit: 2cdcfc0c57e375955d3ed7c8e1487f9d4751b255
Component: engine
2014-06-27 15:57:31 -07:00
4ad46ffe31 Use last allocated port logic in port allocator
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Upstream-commit: e77729c2e081c5ce55aa1d4f316b7c7703e5de96
Component: engine
2014-06-27 10:51:26 -07:00
52ddc2736f Make ErrPortAlreadyAllocated an error interface with a few extras,
adjust tests to fit.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Upstream-commit: ffd68badc0a3d70fbd063903702355a387621b10
Component: engine
2014-06-27 10:51:25 -07:00
187971736c Restrict portallocator to Docker allocated ports
Port allocation status is stored in a global map: a port detected in use will remain as such for the lifetime of the daemon. Change the behavior to only mark as allocated ports which are claimed by Docker itself (which we can trust to properly remove from the allocation map once released). Ports allocated by other applications will always be retried to account for the eventually of the port having been released.

Docker-DCO-1.1-Signed-off-by: Arnaud Porterie <icecrime@gmail.com> (github: icecrime)
Upstream-commit: dafddf461eeabd792d9ced6caced75ad6961c1d7
Component: engine
2014-06-27 10:51:25 -07:00
53991068e0 Use State waiting functions
Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
Upstream-commit: 57d86a5619adae5e08e0e28fba99f6a7c2f5ee54
Component: engine
2014-06-27 15:07:40 +04:00
724bb65de7 State refactoring and add waiting functions
Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
Upstream-commit: 47065b904559f36e83b924007c375f2de0f31af0
Component: engine
2014-06-27 15:05:48 +04:00
88e1677028 Merge pull request #6703 from crosbymichael/update-libcontainer-dep
Update libcontainer to 53cfe0a1eba9145bf5329abb
Upstream-commit: 67f6b0fd43a7f4c5c1b07373f73568c0444145a5
Component: engine
2014-06-26 21:20:59 -04:00
3090f44756 Merge pull request #6579 from vieux/dockerignore
Rebased Dockerignore
Upstream-commit: 6e3fe9314801baf9e4d162619fabfca5b61456fa
Component: engine
2014-06-26 21:00:43 -04:00
7af08aef44 Merge pull request #6683 from vieux/add_links_inspect
add links to inspect for 'linking' containers
Upstream-commit: e35a9a7def6113ffff2c624142ef194abfa7e916
Component: engine
2014-06-26 17:33:02 -07:00
68391774fe Update libcontainer Context changes
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@docker.com> (github: crosbymichael)
Upstream-commit: c9fdb08bdafb90b76cfa804b079d2e446a3503e4
Component: engine
2014-06-26 16:56:39 -07:00
d4f4419563 Change misnamed TarFilter to TarWithOptions
Docker-DCO-1.1-Signed-off-by: Travis Cline <travis.cline@gmail.com> (github: tmc)
Upstream-commit: 111ab125b954c8d28503e1922e742eb271cc5d04
Component: engine
2014-06-26 22:49:08 +00:00
12c0cff814 add links to inspect for 'linking' containers
Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
Upstream-commit: 55691e5fdc78b5c3015c7a481371e482878c14d2
Component: engine
2014-06-26 20:51:38 +00:00
9c28be7542 devmapper: add thin-pool blocksize to the 'docker info' output
Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
Upstream-commit: a2f3ce2294bbe998df24edd50f2b571d0b21bac8
Component: engine
2014-06-26 12:39:16 -04:00
fbe2366f74 devmapper: document the default DM thin pool blocksize
Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
Upstream-commit: 79f217e3501a43326bd532e8eb03182f7488f61c
Component: engine
2014-06-26 12:06:41 -04:00
55be9bc370 refactor TruncIndex to use a trie & vendor deps
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Upstream-commit: e0dad305791a7406cf819a27fa5a079a46a62acc
Component: engine
2014-06-26 16:57:54 +03:00
9a4ed6541e Merge pull request #6218 from vieux/update_maintainers
Upstream-commit: c9e647e42f3019b619b0ef47ff944831c226624c
Component: engine
2014-06-25 17:00:32 -07:00
06a813f16e Merge pull request #6643 from kzys/freebsd-cp
cp's -T and --reflink=auto are only available on GNU coreutils
Upstream-commit: 6d8e95557cd63b6e8302255d6e070f24d7c2e6d5
Component: engine
2014-06-24 14:29:18 -07:00
3d6c57f495 Merge pull request #6650 from crosbymichael/update-libcontainer-post-refactor
Update libcontainer dep to 5210a236b92a8022a673108f347
Upstream-commit: 408963ed4d4ea5ffca99c08b3e22bf720eb19b88
Component: engine
2014-06-24 13:51:04 -07:00
df9f902ba5 Merge pull request #6648 from LK4D4/truncindex_bench
Truncindex benchmarks
Upstream-commit: c4dbd4f7c0ff3f33705db21a709c3475ebe0770b
Component: engine
2014-06-24 22:10:33 +03:00
0daa61f085 Rename libcontainer.Container to libcontainer.Config
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@docker.com> (github: crosbymichael)
Upstream-commit: 1dc8e2ffab795f4999a122b4a576d54e03c7c61a
Component: engine
2014-06-24 11:31:03 -07:00
d4e9300e80 Update libcontainer references
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@docker.com> (github: crosbymichael)
Upstream-commit: cee6f4506c79c6fc21769d427ac4dd51c28450c3
Component: engine
2014-06-24 11:31:03 -07:00
1ce22444ec Move truncindex in separate package in pkg/
Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
Upstream-commit: ed032ddfd68a8654671a13d676c0f7539e36a10b
Component: engine
2014-06-24 21:19:15 +04:00
bda9d074fe devmapper: remove extra space in DefaultThinpBlockSize assignment
Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
Upstream-commit: f9c078ef38106d00de7774374f3ac71bb0d562d3
Component: engine
2014-06-24 12:43:45 -04:00
e00d89f257 devmapper: Add option for specifying the thin pool blocksize
Add dm.blocksize option that you can use with --storage-opt to set a
specific blocksize for the thin provisioning pool.

Also change the default dm-thin-pool blocksize from 64K to 512K.  This
strikes a balance between the desire to have smaller blocksize given
docker's use of snapshots versus the desire to have more performance
that comes with using a larger blocksize.  But if very small files will
be used on average the user is encouraged to override this default.

Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
Upstream-commit: 09ee269d998ad04733ef577739fa051df9d3f12e
Component: engine
2014-06-24 12:10:28 -04:00
d61150b2d4 devmapper: use RAMInBytes() rather than FromHumanSize()
Device Mapper needs device sizes in binary (1024) multiples.  Otherwise
kernel checks can find that the specified thin-pool device sizes aren't
a multiple of the specified thin-pool blocksize.

The name for "RAMInBytes" is likely too narrow given the new consumers
but... Also add "tebibyte" support to RAMInBytes.

Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
Upstream-commit: 2470a5ed999d9dc8d4b9bd250727ac13964db5b3
Component: engine
2014-06-24 12:10:14 -04:00
157a125d05 devmapper: fix reloadPool() to also specify '1 skip_block_zeroing'
createPool() and reloadPool() should be consistent with the thin-pool
table params they use.

Since createPool() specifies '1 skip_block_zeroing' reloadPool() should
too.  Otherwise, if the pool is reloaded (as is done when resizing
loopback devices) block zeroing will be enabled after the reload
completes.

Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
Upstream-commit: d420134fa2ea8ceedf2a9a64263d09b308263c2c
Component: engine
2014-06-24 11:23:13 -04:00