daniel-garcia
0198f8a879
fixes #2671 , add support for bind mounting individual files in to containers, rebases of #1757 #2301
2013-11-21 23:40:35 -06:00
Michael Crosby
0cecc2a78c
Merge branch 'master' into 0.6.5-dm-plugin
...
Conflicts:
container.go
image.go
2013-11-21 17:18:41 -08:00
Michael Crosby
25e443a3c7
Merge pull request #2798 from dotcloud/fix_state_race
...
Refactor State to be 100% thread safe
2013-11-21 16:39:50 -08:00
Guillaume J. Charmes
33e70864a2
Refactor State to be 100% thread safe
2013-11-21 16:34:58 -08:00
Michael Crosby
f7c2a00557
Merge pull request #2304 from unclejack/fix_layer_size_computation
...
Fix layer size computation: handle hard links correctly
2013-11-21 16:10:24 -08:00
Guillaume J. Charmes
bcdeb37bb6
Merge pull request #2794 from dotcloud/fix_status_code_and_usage
...
fix status code and usage
2013-11-21 13:48:38 -08:00
Michael Crosby
cb70eedfda
Revert "Lock state before we modify."
...
This reverts commit d7e2fc8982
.
2013-11-21 12:11:25 -08:00
Victor Vieux
75a7f4d90c
Return status exit status 2 on usage, move parserun into commands.go, display usage on stderr
2013-11-21 11:43:07 -08:00
Paul Nasrat
d7e2fc8982
Lock state before we modify.
...
When we start a container we lock state, we should do the same in stop.
Detected via -race.
2013-11-21 08:06:02 -05:00
Michael Crosby
8fdbf46afb
Fix image size calc on initial save
2013-11-20 14:51:04 -08:00
Victor Vieux
cd022376b8
Merge branch 'master' into vieux_merge_master
...
Conflicts:
runtime.go
2013-11-19 17:32:08 -08:00
unclejack
78c843c8ef
fix container size computation: handle hard links
...
This change makes docker compute container size correctly.
The old code isn't taking hard links into account. Containers could
seem like they're up to 1-1.5x larger than they really were.
2013-11-19 13:53:34 +02:00
Alexander Larsson
5d76681c3d
Implement fallback for getting the size of a container
...
This moves Driver.Size() to Differ.DiffSize(), removing the empty
implementations in devmapper and dummy, and renaming the one in aufs.
Then we fall back to a container.Changes() implementation in the non-aufs
case.
2013-11-19 10:36:54 +01:00
Josh Poimboeuf
fc2f5758cf
fix container restart race condition
...
Finish container cleanup before setting the state to stopped.
Otherwise, for an application that exits quickly, a call to Restart
can allow Start to be called again before cleanup is done, resulting in
overritten data in the Container struct.
2013-11-18 11:42:30 -06:00
Michael Crosby
4908d7f81d
Save driver to container and skip incompat containers
...
For people who toggle drivers we want to save the driver used
to create a container so that if the driver changes we can skip
loading the container and it should not show up in docker ps
2013-11-14 22:53:59 -08:00
Guillaume J. Charmes
7cf60da388
Merge branch 'master' into shykes-0.6.5-dm-plugin
...
Conflicts:
utils.go
utils_test.go
2013-11-14 14:02:44 -08:00
Michael Crosby
629c6e3649
Merge pull request #2445 from alexlarsson/fix-shared-root-from-dm
...
Fix lxc start for shared root filesystems
2013-11-14 11:20:53 -08:00
Michael Crosby
5d9723002b
Allow drivers to implement ApplyDiff in Differ interface
2013-11-11 19:09:57 -08:00
Victor Vieux
bc6d872841
on docker start, do not cleanup if already running
2013-11-11 18:15:38 -08:00
Michael Crosby
2c7f50a77d
Add ability to exclude files from tar
2013-11-11 14:30:38 -08:00
Victor Vieux
4c7d24bc8b
Merge branch 'master' of https://github.com/zilin/docker into zilin-master
...
Conflicts:
container.go
2013-11-11 12:59:18 -08:00
Victor Vieux
87c8437a90
Merge pull request #2140 from SvenDowideit/2098-run-cidfile-should-return-longid
...
Server: always return long id's
2013-11-11 13:06:19 -08:00
Victor Vieux
da24945070
Merge branch 'master' of https://github.com/aanand/docker into aanand-master
2013-11-11 12:34:16 -08:00
Michael Crosby
4d1a537433
Remove Differ and Changer interfaces
...
Add the methods to the Driver interface
to force the drivers to implement the methods
2013-11-11 12:10:53 -08:00
Alexander Larsson
e82f8c1661
Implement fallback operation for driver.Diff()
...
This moves the Diff() operation to a separate Differ interface and
implements a fallback that uses the Changes() results to encode
a diff tar.
2013-11-11 17:46:07 +01:00
Sven Dowideit
b3974abe4f
make all image ID and container ID API responses use the Long ID ( Closes #2098 )
2013-11-09 12:16:49 +10:00
Michael Crosby
1f35531f39
Merge pull request #13 from crosbymichael/fix-volume-mount
...
Do not pass container information when creating a volume
2013-11-08 16:35:00 -08:00
Michael Crosby
ddb27268c9
Do not pass container information when creating a volume
2013-11-08 16:11:57 -08:00
Michael Crosby
1eb00e1d5b
Allow drivers to export their own diff
2013-11-08 15:32:50 -08:00
Michael Stapelberg
e7fdcc15c5
Return “err” instead of “nil” when MkdirAll() fails when binding a volume
2013-11-08 22:52:10 +01:00
Michael Crosby
20f690f176
Make sure dirs are created before injecting file
2013-11-08 12:06:15 -08:00
Victor Vieux
49d7b87cfc
prevent panic if you use API in a wrong way
2013-11-07 18:54:00 -08:00
Solomon Hykes
99210c9c6e
Don't rely on drivers for diff and export
2013-11-08 02:48:52 +00:00
Victor Vieux
f417c4b099
Merge branch '1887-allow_ro_volumes-from' of https://github.com/daniel-garcia/docker into daniel-garcia-1887-allow_ro_volumes-from
2013-11-07 17:59:55 -08:00
Solomon Hykes
9ae4bcaaf8
Move Change to the archive package, and fix a leftover merge in
...
Container.Inject()
2013-11-08 00:45:07 +00:00
Solomon Hykes
f1127b9308
gofmt
2013-11-07 23:58:03 +00:00
Solomon Hykes
165d1bdbc0
Merge branch 'master' into 0.6.5-dm-plugin
...
Conflicts:
container.go
runtime.go
2013-11-07 23:26:52 +00:00
Solomon Hykes
f2bab1557c
Simplify graphdriver interface: Create, Get. No more external mounting or Dir/Image interface
2013-11-07 22:38:50 +00:00
Solomon Hykes
77ae9789d3
Internal cleanup: use the mounted container filesystem instead of manipulating the aufs layers directly
2013-11-07 20:30:56 +00:00
Guillaume J. Charmes
6998c3c387
go fmt
2013-11-07 12:27:33 -08:00
Alexander Larsson
157d99a727
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 rshared.
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...
2013-11-06 20:43:06 +01:00
Mark Allen
74f853a2ae
See if a path exists before injecting Reader there
...
Closes #1965
2013-11-05 23:44:52 -06:00
unclejack
4b8c41c4a2
disallow / as source for bind mount in the cli
...
This makes the docker cli reject docker run commands which include bind
mounts like "/:/some/path/in/the/container".
Bind mounting the root directory is a bad idea and the cli should throw
an error right away.
The same check will also be made by the remote API via another commit.
2013-11-05 22:52:54 +02:00
Daniel Garcia
f9cb6ae46a
Add ability to mount volumes in readonly mode using -volumes-from
2013-11-05 11:58:51 -06:00
Guillaume J. Charmes
342bd43b76
Merge pull request #2525 from dotcloud/fix_hostnames
...
Fix regression in /etc/hosts
2013-11-04 11:26:27 -08:00
Solomon Hykes
98c3693acf
Integrate devmapper and aufs into the common "graphdriver" framework.
...
aufs is still enabled by default, no mechanism for switching drivers
yet.
2013-11-04 17:28:35 +00:00
Paul Nasrat
95708dd35c
Create new network on dead ghosts on restart.
...
Fixes #2089
2013-11-03 14:13:18 -05:00
Victor Vieux
f3685333c0
fix regression in /etc/hosts
2013-11-01 15:46:26 -07:00
Victor Vieux
7ddd4fe66a
rebase
2013-11-01 14:01:32 -07:00
Jérôme Petazzoni
31638ab2ad
Refactor HostConfig and escape apparmor confinement
2013-11-01 13:55:19 -07:00
Michael Crosby
65ba2868d7
Merge pull request #2492 from dotcloud/publish-all-flag
...
Add -P flag to publish all exposed ports
2013-11-01 10:21:02 -07:00
Aanand Prasad
9ee9d2f995
Container memory limit can be specified in kilobytes, megabytes or gigabytes
...
-m 10 # 10 bytes
-m 10b # 10 bytes
-m 10k # 10240 bytes (10 * 1024)
-m 10m # 10485760 bytes (10 * 1024 * 1024)
-m 10g # 10737418240 bytes (10 * 1024 * 1024 * 1024)
Units are case-insensitive, and 'kb', 'mb' and 'gb' are equivalent to 'k', 'm' and 'g'.
2013-11-01 12:00:17 +00:00
Solomon Hykes
36c7a7ae94
Partial merge of devmapper/ in order to integrate it as a backend
...
plugin.
The merge is inert, in other words the devmapper code is not called
and the primary aufs backend is untouched.
2013-11-01 04:24:17 +00:00
Michael Crosby
699a1074fb
Initial work on moving aufs to a subpackage
2013-10-31 18:07:54 -07:00
Michael Crosby
96d1e9bb5a
Move archive.go to sub package
2013-10-31 16:57:45 -07:00
Michael Crosby
652f07bb59
Add -P flag to publish all exposed ports
2013-10-31 11:28:30 -07:00
Zilin Du
b543516556
Merge remote-tracking branch 'upstream/master'
...
Conflicts:
container.go
2013-10-31 10:53:40 -07:00
Brian Olsen
1c3a674444
Fixed problem with variables containing \n.
...
The /.dockerenv file is now a marshalled json array so that environment
variables with \n and other weird values are supported.
2013-10-31 01:19:32 +01:00
Brian Olsen
25c4c87c86
Support copying value from env with -e option.
2013-10-31 01:19:09 +01:00
Brian Olsen
be7eb4bfcb
Set environment variables using a file.
2013-10-31 00:48:12 +01:00
Michael Crosby
746ba127bf
Hotfix: Migrate public mappings after upgrade
2013-10-30 08:15:12 -07:00
Victor Vieux
e0b59ab52b
Enable sig-proxy by default in run and attach
2013-10-29 11:18:34 -07:00
Michael Crosby
0d2924408b
Add -name for docker run
...
Remove docker link
Do not add container id as default name
Create an auto generated container name if not
specified at runtime.
2013-10-28 18:09:08 -07:00
Tianon Gravi
cf86e2bb22
Rename all cases of "docker-init" to "dockerinit" for consistency
2013-10-25 15:13:25 -07:00
Alexander Larsson
d063c8d941
Move ListOps to utils submodule
...
This will be needed for later use in docker-init without a docker
dependency
2013-10-25 15:13:24 -07:00
Michael Crosby
1cbdaebaa1
Add links for container relationships and introspection
2013-10-25 15:13:24 -07:00
Michael Crosby
ff567f8729
Merge pull request #2385 from dotcloud/suppress_even_more_warnings_test
...
Improve tests again, remove warnings and prevent some mount issues
2013-10-25 15:04:56 -07:00
Victor Vieux
a675e249b1
fix workdir, hostname tests and a bunch on mount issue
2013-10-24 16:57:35 -07:00
Jérôme Petazzoni
b9eb5e04ae
Ignore ErrClosedPipe for stdin in Container.Attach.
...
But pass `err` in the error channel anyway; don't ignore it anymore.
2013-10-24 15:04:58 -07:00
Victor Vieux
10e10c9573
fix race condition in docker build with verbose + cleanup hostIntegration debug
2013-10-22 15:01:06 -07:00
Guillaume J. Charmes
3e014aa662
Fix attach race condition, improve unit tests, make sure the container is started before unblocking Start
2013-10-18 16:26:16 -07:00
Guillaume J. Charmes
333bc23f21
Fix issue killing container while sending signal
...
Fix rebase issue
Update docs
2013-10-18 16:19:27 -07:00
Guillaume J. Charmes
4918769b1a
Add -nostdin and -proxy to docker attach, allow arbirary signal to be sent via docker kill api endpoint
...
Allow attach from `docker start`
Add host integration script generation
Update doc with host integration
2013-10-18 16:16:29 -07:00
Guillaume J. Charmes
e9ee860c91
Merge branch 'master' into dm
...
Conflicts:
Dockerfile
buildfile.go
container.go
hack/make/test
runtime_test.go
utils/utils.go
2013-10-18 12:38:29 -07:00
Guillaume J. Charmes
c2175ae736
Switch back some Errorf to Debugf.
2013-10-18 12:29:16 -07:00
Michael Crosby
3ba9893786
Merge pull request #2242 from jpetazzo/remove-spurious-errors-and-errclosedpipe
...
Fix error/debug messages in Container.Attach and recover from ErrClosedPipe
2013-10-16 17:27:23 -07:00
Victor Vieux
e40fd1e3e1
fix panic
2013-10-16 21:39:03 +00:00
Guillaume J. Charmes
ed6ca109bf
Refactor container.Start()
2013-10-16 13:12:56 -07:00
Victor Vieux
664acd2971
Add clean if start fail
2013-10-16 19:48:24 +00:00
Jérôme Petazzoni
fc659b68e4
Fix error/debug messages in Container.Attach and recover from ErrClosedPipe conditions.
2013-10-16 11:35:45 -07:00
Michael Crosby
80bd64245f
Add filesystemtype for containers
...
If no type is specified then assume aufs.
2013-10-15 11:49:13 -07:00
Karl Grzeszczak
ad723bbfe7
Initial steps to fix Issue #936
...
Use utils.Errorf instead of utils.Debugf
2013-10-11 08:04:40 -05:00
Solomon Hykes
1804fcba93
Merged master into device-mapper branch
2013-10-10 12:50:30 -07:00
Zilin Du
c2912c82aa
change 127.0.0.1 -> 127.0.1.1 & remove ::1 -> hostname mapping
2013-10-10 09:44:48 -07:00
Zilin Du
7d95d300ab
replace 127.0.0.1 by the assigned IP address in the container's /etc/hosts file.
2013-10-08 14:29:22 -07:00
Victor Vieux
152302e379
go fmt and aufs support removed
2013-09-30 17:35:02 -06:00
Alexander Larsson
b0a9147fd5
runtime test: Ensure all containers are unmounted at nuke()
...
Otherwise we may leave around e.g. devmapper mounts
2013-09-30 17:35:02 -06:00
Alexander Larsson
43a7d3d0e9
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.
2013-09-30 17:35:01 -06:00
Alexander Larsson
429587779a
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...
2013-09-30 17:35:01 -06:00
Alexander Larsson
c138801073
Container: Inject into the mount, not the rwPath
...
For device-mapper setups we can't just push the file into the rwPath.
2013-09-30 17:35:01 -06:00
Alexander Larsson
b0626f403b
Implement container.ExportRW() on device-mapper
2013-09-30 17:34:59 -06:00
Alexander Larsson
fda6ff9c27
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.
2013-09-30 17:34:59 -06:00
Alexander Larsson
1c5dc26a7c
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.
2013-09-30 17:34:59 -06:00
Alexander Larsson
a9ec1dbc9b
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.
2013-09-30 17:34:59 -06:00
Alexander Larsson
e368c8bb01
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
2013-09-30 17:34:58 -06:00
Victor Vieux
bcce3cbdd1
Merge pull request #1995 from dotcloud/fix_attach_2
...
Fix the attach behavior with -i
2013-09-30 03:29:19 -07:00
Guillaume J. Charmes
537149829a
Fix the attach behavior with -i
2013-09-27 11:10:55 -07:00
Michael Crosby
723de87681
Move run -rm to the cli only
2013-09-26 14:52:37 -07:00
Michael Crosby
db869ecce5
Merge pull request #1589 from unclejack/479-add_rm_support_to_docker_run
...
Add -rm to docker run for removing a container on exit
2013-09-27 11:45:32 -07:00
unclejack
22e7e107ad
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.
2013-09-27 17:43:12 +03:00