Commit graph

29 commits

Author SHA1 Message Date
Andrea Luzzardi
c7f4602b18 Merge from master 2013-02-26 17:32:07 -08:00
Solomon Hykes
ebaa50c4c9 docker wait: block until a container exits, and print its exit code 2013-02-26 11:43:54 -08:00
Andrea Luzzardi
c08f5b2b84 Integrated the network allocator into Docker. A networking environment
is assigned to each container upon Start and released whenever the
container exits.
2013-02-25 14:06:22 -08:00
Andrea Luzzardi
5cecd548cd Basic networking support with hardcoded addresses. Work in progress. 2013-02-21 10:47:57 -08:00
Andrea Luzzardi
0da9ccc18e Fixed a bug preventing proper reattachment to stdin upon container restart 2013-02-13 19:05:57 -08:00
Andrea Luzzardi
1793538a68 Generate LXC config upon start rather than at container creation 2013-02-13 18:14:46 -08:00
Andrea Luzzardi
6de3e8a22d Implemented support to run as a different user (through the -u flag) 2013-02-13 17:24:35 -08:00
Andrea Luzzardi
58a2294260 Implemented a self-injecting process wrapper that runs inside the container
- Before starting the container, docker injects itself inside the container by mount binding the dockerd binary into /sbin/init
- Instead of running the user process directly inside the container, we run /sbin/init targetprocess [args...]
- When docker is run as /sbin/init (e.g. argv[0] == "/sbin/init"), then its own sys init code kicks in
- The sys init code will be responsible for setting up the process environment prior to its execution (setuid, networking, ...).
- Finally, docker's sys init will exec() the container's process, thus replacing itself with the target binary (which will be running as pid 1)
2013-02-13 14:01:44 -08:00
Andrea Luzzardi
caea45dd72 Container: Improved pseudo-terminal support 2013-01-29 15:51:21 -08:00
Andrea Luzzardi
94b1cf4be3 go fmt 2013-01-29 13:50:27 -08:00
Solomon Hykes
c7a944caf2 List containers ordered by creation time 2013-01-29 03:24:31 -08:00
Solomon Hykes
7a50153c32 'docker run -i' optionally opens stdin. 'docker attach' attaches to a running container (including stdin). 'docker run -t' allocates a tty (still buggy) 2013-01-28 17:50:12 -08:00
Andrea Luzzardi
333abbf85a go fmt 2013-01-28 14:30:05 -08:00
Solomon Hykes
904b0ab52b Experimenting with a UI which differentiates images and containers 2013-01-27 15:42:42 -08:00
Solomon Hykes
fc19a00103 Fixed a bug which caused Container.Start() to fail when the rootfs was already mounted. 2013-01-27 01:06:02 -08:00
Solomon Hykes
b6fb5bb21b Create empty mountpoints (./rw and ./rootfs) every time we create or load a container 2013-01-27 00:49:09 -08:00
Solomon Hykes
5d6dd22fb2 Plugged 4 more commands into the real backend: 'diff', 'reset', 'run', 'stop'. 'run' actually runs the process, but doesn't capture outptu properly, and encounters mount issues 2013-01-26 15:56:42 -08:00
Solomon Hykes
dbc7fb7575 Merge branch 'master' of ssh://github.com/dotcloud/docker 2013-01-25 18:02:56 -08:00
Andrea Luzzardi
6513a1d94e Fixed a bug preventing containers from running after being restored 2013-01-25 16:20:34 -08:00
Solomon Hykes
fca2625490 Merge branch 'master' of ssh://github.com/dotcloud/docker 2013-01-25 15:42:43 -08:00
Andrea Luzzardi
f4e25694c1 container: Fixed a bunch of race conditions by getting rid of lxc-wait. 2013-01-25 15:36:47 -08:00
Solomon Hykes
11b65a00c6 Container.SetUserData() and GetUserData(): attach optional user data to a container 2013-01-25 14:39:02 -08:00
Andrea Luzzardi
2193b0c954 Docker: Fixed an issue with container unmarshaling which prevented
docker.restore() to work properly.
2013-01-25 14:09:21 -08:00
Andrea Luzzardi
f958bdba8a Fixed lxc-wait race condition. Added unit test to try running multiple
containers in parallel.
2013-01-22 17:30:09 -08:00
Andrea Luzzardi
f0c08b57ab Restart() implementation 2013-01-22 15:03:40 -08:00
Andrea Luzzardi
8e9bb02ce5 Container: Better serialization/reloading support 2013-01-22 11:13:22 -08:00
Andrea Luzzardi
78c02daf47 container.Name -> container.Id 2013-01-21 18:39:52 -08:00
Andrea Luzzardi
24dac22892 Docker: Clean shutdown of containers.
Stop() will send a SIGTERM to the init process of the container and give it 10 seconds to shutdown properly.
After the timeout is reached, the process will be force killed (SIGKILL).
Also available is Kill() which kills the process on the spot.
2013-01-21 18:03:23 -08:00
Andrea Luzzardi
a27b4b8cb8 Initial commit 2013-01-18 16:13:39 -08:00