Commit Graph

266 Commits

Author SHA1 Message Date
5fc36fa5bf runtime test: Ensure all containers are unmounted at nuke()
Otherwise we may leave around e.g. devmapper mounts
Upstream-commit: b0a9147fd5f0197931b73e18163a12b04ad8e826
Component: engine
2013-09-30 17:35:02 -06:00
9f8a6e47d8 Add trivial copy-based CoW backend
This creates a container by copying the corresponding files
from the layers into the containers. This is not gonna be very useful
on a developer setup, as there is no copy-on-write or general diskspace
sharing. It also makes container instantiation slower.

However, it may be useful in deployment where we don't always have a lot
of containers running (long-running daemons) and where we don't
do a lot of docker commits.
Upstream-commit: 43a7d3d0e9e2fafcdc90cb84855e1bb3869d2729
Component: engine
2013-09-30 17:35:01 -06:00
1d1c891003 lxc: Work around lxc-start need for private mounts
lxc-start requires / to be mounted private, otherwise the changes
it does inside the container (both mounts and unmounts) will propagate
out to the host.

We work around this by starting up lxc-start in its own namespace where
we set / to rprivate.

Unfortunately go can't really execute any code between clone and exec,
so we can't do this in a nice way. Instead we have a horrible hack that
use the unshare command, the shell and the mount command...
Upstream-commit: 429587779a95a4d38ec9cd66202de9729c320ef8
Component: engine
2013-09-30 17:35:01 -06:00
f3c281436d Container: Inject into the mount, not the rwPath
For device-mapper setups we can't just push the file into the rwPath.
Upstream-commit: c1388010731cac1c8ff5159bd72b926545a64e58
Component: engine
2013-09-30 17:35:01 -06:00
79ab6381a5 Implement container.ExportRW() on device-mapper
Upstream-commit: b0626f403b168b9020a802ec3bc4ad8c9bbc2486
Component: engine
2013-09-30 17:34:59 -06:00
06dfc21edb Make TarFilter more useful
There are a few changes:
* Callers can specify if they want recursive behaviour or not
* All file listings to tar are sent on stdin, to handle long lists better
* We can pass in a list of filenames which will be created as empty
  files in the tarball

This is exactly what we want for the creation of layer tarballs given
a container fs, a set of files to add and a set of whiteout files to create.
Upstream-commit: fda6ff9c2707efbd1c9d1f2bf151b9d1d082d0c6
Component: engine
2013-09-30 17:34:59 -06:00
534a030a97 Implement docker diff for device-mapper
To do diffing we just compare file metadata, so this relies
on things like size and mtime/ctime to catch any changes.
Its *possible* to trick this by updating a file without
changing the size and setting back the mtime/ctime, but
that seems pretty unlikely to happen in reality, and lets
us avoid comparing the actual file data.
Upstream-commit: 1c5dc26a7c0a0abb7bc59174768ec309f6c5fd4f
Component: engine
2013-09-30 17:34:59 -06:00
0134fab2c6 Image: Deactivate image device when unmounting container
There is no need to keep all the device-mapper devices active, we
can just activate them on demand if needed.
Upstream-commit: a9ec1dbc9bec91e1c0f1b751a06680570a04e915
Component: engine
2013-09-30 17:34:59 -06:00
3b80b99ef6 Image: Add runtime and container id args to Mount()
We will later need the runtime to get access to the VolumeSet
singleton, and the container id to have a name for the volume
for the container
Upstream-commit: e368c8bb01b3c52c8e4c334c3a7f32556af9d632
Component: engine
2013-09-30 17:34:58 -06:00
4664dde409 Merge pull request #1995 from dotcloud/fix_attach_2
Fix the attach behavior with -i
Upstream-commit: bcce3cbdd1cb4d79272c0cbfa43ef0847be1b9d9
Component: engine
2013-09-30 03:29:19 -07:00
54929011c2 Fix the attach behavior with -i
Upstream-commit: 537149829accde869430924cf988f64cfbd16f99
Component: engine
2013-09-27 11:10:55 -07:00
5ead415a2c Move run -rm to the cli only
Upstream-commit: 723de8768145cb47fdb6af399043f9313ad29cdb
Component: engine
2013-09-26 14:52:37 -07:00
3724fa4a50 Merge pull request #1589 from unclejack/479-add_rm_support_to_docker_run
Add -rm to docker run for removing a container on exit
Upstream-commit: db869ecce57baa71f8b5eccf5fb769c3c6796438
Component: engine
2013-09-27 11:45:32 -07:00
5bcfc0bffe automatically remove container via -rm
add AutoRemove to HostConfig
add -rm flag to docker run
add TestRunAutoRemove to test -rm
docs: add -rm to commandline/command/run
add hostConfig to container monitor
make monitor destroy the container via -rm

This adds support for automatically removing a container after it
exits. The removal of the container is handled on the server side.
Upstream-commit: 22e7e107addc4703ee6ef36981dfafe985be695d
Component: engine
2013-09-27 17:43:12 +03:00
58c06a4f26 Container: Always create a new session for the container
We never want the container to be in the same process group as the
daemon, as then the container will receive signals sent to the
process group of the container.
Upstream-commit: c1c74cb0b1e83c4836b51828888daff181f52742
Component: engine
2013-09-24 14:57:29 +02:00
775cc7de8b Merge pull request #1948 from dotcloud/fix_attach
Fix attach issue
Upstream-commit: 2fafe1efce32c7560151e036c43e0dddb7faaa14
Component: engine
2013-09-23 02:15:51 -07:00
f4fdcdb53f Merge pull request #1934 from dotcloud/host-permissions
Only copy files and change permissions with non bindmount
Upstream-commit: 23cf3c7a3318b893ea1dd50cc9f05d4705bcc6df
Component: engine
2013-09-22 09:40:52 -07:00
94c2057eff Improve detach unit tests
Upstream-commit: e97364ecd73fac7abfbd82cc7e3ebaa6cda3c935
Component: engine
2013-09-20 13:36:19 -07:00
bcb4cc4982 Fix attach issue
Upstream-commit: 2bd089dadb9a66829aa1835ad674d652244c5c97
Component: engine
2013-09-20 11:31:00 -07:00
99d2e0befc Only copy files and change permissions with non bindmount
Upstream-commit: b45e280ee8161b38127b90e718945130bc1e935a
Component: engine
2013-09-19 20:35:05 -07:00
3eaff637a9 Merge pull request #1886 from dotcloud/multi-volumes-from
* Runtime: Allow multiple volumes-from
Upstream-commit: 68074fce68ebd3f0e6e7c648ddf72dcc96960096
Component: engine
2013-09-19 12:01:12 -07:00
6deb994c66 Merge pull request #1849 from dotcloud/better_handle_hostConfig
Improved hostConfig reload
Upstream-commit: 45b50730e39ed5badad0a320e2163924117bdd71
Component: engine
2013-09-16 10:48:53 -07:00
2e27a64777 Allow multiple volumes-from
Upstream-commit: b79bd4e864d53e927a9480374646d5e94d12141c
Component: engine
2013-09-14 20:09:15 +00:00
a0167b5a29 Merge pull request #1846 from dotcloud/fix_return_error
Fix wrong return error
Upstream-commit: b986fd00e074432c2f0d05655b4cf22c8d51b36f
Component: engine
2013-09-13 09:44:38 -07:00
3604478445 Transfer uid and gid to volume. Fixes #1737.
Upstream-commit: 9cfbaecfe5b1ccb1ab21c66400f3a1ba1b33da1e
Component: engine
2013-09-11 03:17:42 +02:00
2ea799480f improved hostConfig reload
Upstream-commit: f482432a76a898e5d0252b6c5878a0e60290d0a4
Component: engine
2013-09-10 22:13:15 +00:00
007dc4770c fix wrong return error
Upstream-commit: 44d0f941f287d5dcf6212216b7c0b72b085bdb1a
Component: engine
2013-09-10 17:16:59 +00:00
62ef8f176e Merge branch '1582_fix_volume_content' of https://github.com/griff/docker into griff-1582_fix_volume_content
Upstream-commit: 27ca0c225aebfe93c4edd2d39d188175f4b2f516
Component: engine
2013-09-10 16:52:46 +00:00
8ec924d460 Merge pull request #1735 from dotcloud/1301-support-domainname
Add domain name support
Upstream-commit: e89396809fc3cc9a52e7787f829a8b96c7cee4a4
Component: engine
2013-09-09 17:21:11 -07:00
8ab45c6770 bind mount /etc/hosts and /etc/hostname
Upstream-commit: 4f2e59f94a771c4b60947726815d065ef0ea253a
Component: engine
2013-09-09 20:29:57 +00:00
b8740215e5 add domainname support
Upstream-commit: 0a436e03b8289510ad191a89fcbd5ec06fb8865d
Component: engine
2013-09-09 20:29:06 +00:00
89239ee795 Merge branch 'better_api_ports' of git://github.com/shin-/docker into shin--better_api_ports
Upstream-commit: 2ea52dddec97c26bfcb1d9837a1dae0a9974e14c
Component: engine
2013-09-04 22:25:01 +02:00
8de9407f39 Copies content from image to volumne if non-empty. Fixes #1582.
Upstream-commit: 7a9c71183212a40fdd10369d009a9f97b56fe359
Component: engine
2013-08-30 22:02:05 +02:00
4fa9c87644 Just fixing gofmt issues in other people's code.
Upstream-commit: 6756e786ac36d4e5cda46541b5d6e0b2913b6997
Component: engine
2013-08-30 22:02:05 +02:00
d89a877aeb add TEST env var during tests and silenced parserun during tests
Upstream-commit: eee6d3dae96afbcb1456b4a84f05f1aac44e5598
Component: engine
2013-08-29 22:55:29 +00:00
828c933a0c More descriptive, easier to process container portmappings information in the API
Upstream-commit: 98018df07856811536722df84b9558e0efdabdca
Component: engine
2013-08-28 00:20:35 +02:00
773b1c3da4 Merge pull request #1611 from pysqz/master
Make sure 'Ghost' container is available with allocated IP
Upstream-commit: c2b273df5d69f3f0a95aacb4944a55856d40fb35
Component: engine
2013-08-27 11:30:00 -07:00
9d0dc0b6f6 Also reuse forwarding ports
Upstream-commit: cc18a9c650305a377150c67e5ed10f1e2f19b685
Component: engine
2013-08-28 03:14:21 +08:00
dfb6c3c80f Add lxc-conf flag to allow custom lxc options
Upstream-commit: 551092f9c0da2244c60b75d893ef847f915ca604
Component: engine
2013-08-22 16:05:21 +00:00
2865213e6d Make sure 'Ghost' container is available with allocated IP
Upstream-commit: 2f6ce27fde04456284457ff686c8f78ab9bd6d71
Component: engine
2013-08-21 22:37:58 +08:00
9fd5016532 assume ip_forwarding = 1 by default
Upstream-commit: b21f89862076397b63eb3ac4a19b9125b6f6477a
Component: engine
2013-08-19 12:34:30 +00:00
35c6bf7330 Add an option to set the working directory.
This makes it possible to simply wrap a command inside a container. This makes
it easier to use a container as an unified build environment.

Examples:

~/workspace/docker
$ docker  run  -v `pwd`:`pwd` -w `pwd` -i -t  ubuntu ls
AUTHORS		 Makefile	archive.go	   changes.go	      docker
[...]


docker  run  -v `pwd`:`pwd` -w `pwd` -i -t  ubuntu pwd
/home/marco/workspace/docker
Upstream-commit: 687d27ab575778196ea646b6d3fa61b6c8e512b0
Component: engine
2013-08-18 19:34:01 +02:00
951194f6f0 Merge pull request #1505 from dotcloud/improve_events
Add image name in /events
Upstream-commit: 15bc2240ac56a3f584bdc33865c896bac961c6a3
Component: engine
2013-08-14 15:40:36 -07:00
9147a2b4d7 Merge pull request #1496 from xdissent/1351-volumes-from-before-volumes
* Runtime: Apply volumes-from before creating volumes
Upstream-commit: 631c4491838e982697f596518f588fda5f9ae73d
Component: engine
2013-08-14 15:10:41 -07:00
43b59cff4b add -insecure flag and relevant tests
Upstream-commit: 280901e5fbd0c2dabd14d7a9b69a073f6e8f87e4
Component: engine
2013-08-13 16:20:22 -07:00
2037ff0102 ensure the use oh IDs and add image's name in /events
Upstream-commit: 703905d7ece5b4a71ae1faf2743341ace98c4fbb
Component: engine
2013-08-12 11:50:03 +00:00
35109f9244 Skip existing volumes in volumes-from
Removes the error when a container already has a volume that would otherwise
be created by `Config.VolumesFrom`. Allows restarting containers with a
`Config.VolumesFrom` set.
Upstream-commit: 57b49efc98d2f4605c95d5579a6cd952dfd6f124
Component: engine
2013-08-10 06:37:57 +00:00
9d2142818e Apply volumes-from before creating volumes
Copies the volumes from the container specified in `Config.VolumesFrom` before
creating volumes from `Config.Volumes`. Skips any preexisting volumes when
processing `Config.Volumes`. Fixes #1351
Upstream-commit: 3bd73a96333e011738136f6a9eda23642cc204ab
Component: engine
2013-08-10 04:55:23 +00:00
c746f1a64f Add warning when net.ipv4.ip_forwarding = 0
Added warnings to api.go, container.go, commands.go, and runtime.go
Also updated APIInfo to return whether IPv4Forwarding is enabled
Upstream-commit: 10190be5d74bc4b13a885f2ba27c2299c868fd19
Component: engine
2013-08-07 18:28:39 -04:00
073f998d1d Strip leading forward slash from resource
Upstream-commit: d94b1860806e11038086e91c693d86a009dcd3b0
Component: engine
2013-08-06 16:09:54 +00:00