Commit Graph

263 Commits

Author SHA1 Message Date
Nolan 9a604acc23 Add hostname to the container environment. 2013-07-31 09:50:53 -05:00
Victor Vieux cd9f7f29d1 Merge pull request #1334 from dotcloud/1314-compat_broke-fix
Discard error when loading old container format
2013-07-31 01:08:08 -07:00
Thatcher Peskens 5dc86d7bca Updated the description of run -d
The goal is to make it more clear this will give you the container id after run completes.

Since stdout is now standard on run, "docker run -d" is the best (or only) way to get the container ID returned from docker after a plain run, but the description (help) does not hint any such thing.
2013-07-29 14:17:15 -07:00
Victor Vieux b2aa877bf0 fix #1314 discard error when loading old container format 2013-07-29 16:40:35 +00:00
Mike Gaffney 4ebe2cf348 Change reserve-compatibility to reverse-compatibility 2013-07-26 01:10:42 -07:00
Guillaume J. Charmes fd9ad1a194
Fixes #505 - Make sure all output is send on the network before closing 2013-07-24 15:48:51 -07:00
Victor Vieux ee05f97c9a Merge branch 'master' into 1167_events_endpoint-feature 2013-07-24 11:49:04 +00:00
Victor Vieux a41384ad73 add die event 2013-07-23 15:42:34 +00:00
Victor Vieux 8165e51ecc Merge branch '858-disable-network-configuration' of https://github.com/stfp/docker into stfp-858-disable-network-configuration 2013-07-23 08:44:12 +00:00
Stefan Praszalowicz bc172e5e5f Invert network disable flag and logic (unbreaks TestAllocate*PortLocalhost) 2013-07-22 19:00:35 -07:00
Victor Vieux 8ea9ccf3a7 Merge pull request #1244 from dotcloud/1020_add_variable
*Runtime: Add container=lxc in default env
2013-07-22 09:17:30 -07:00
Stefan Praszalowicz 49673fc45c Support completely disabling network configuration with docker -d -b none 2013-07-21 17:49:09 -07:00
Stefan Praszalowicz 3342bdb331 Support networkless containers with new docker run option '-n' 2013-07-21 17:11:47 -07:00
Victor Vieux 67f1e3f5ed add container=lxc in default env 2013-07-19 17:22:16 +00:00
Victor Vieux ea12588524 remove usage from tests 2013-07-19 15:56:00 +00:00
Victor Vieux 0bd534adcf Merge pull request #1211 from dotcloud/new_logs
*Runtime: Logs are now synchronised
2013-07-19 06:43:29 -07:00
unclejack 64e74cefb7 add support for container ID files (a la pidfile) 2013-07-19 16:03:45 +03:00
Guillaume J. Charmes d6fb313220 Merge pull request #1207 from crosbymichael/819-use-persistent-volume
* Runtime: Do not overwrite container volumes from config
2013-07-18 18:51:00 -07:00
Solomon Hykes 5d8efc107d + Runtime: inject dockerinit at /.dockerinit instead of overwriting /sbin/init. This makes it possible to run /sbin/init inside a container. 2013-07-17 17:13:34 -07:00
Guillaume J. Charmes eefbadd230
Merge -b and -v options 2013-07-15 17:51:32 -07:00
Michael Crosby 92cbb7cc80 Do not overwrite container volumes from config
Fixes #819 Use same persistent volume when a container is restarted
2013-07-15 11:59:11 -09:00
Victor Vieux 599f85d4e4 store both logs in a same file, as JSON 2013-07-15 16:17:58 +00:00
Victor Vieux 5756ba9bc4 Merge branch 'master' into new_logs 2013-07-15 13:57:54 +00:00
Michael Crosby 5ae8c7a985 Copy VolumesRW values when using --volumes-from
Fixes #1201
2013-07-14 18:23:20 -09:00
Victor Vieux a909223ee2 Merge pull request #1102 from dotcloud/1098-store_hostconfig_tmp
* Runtime: bind mounts are now preserved upon container restart
2013-07-12 05:04:10 -07:00
Victor Vieux 941e3e2ef0 wip 2013-07-11 17:18:28 +00:00
Victor Vieux d918c7d9de export portmapping in network.go 2013-07-10 14:09:35 +00:00
Louis Opter fac0d87d00 Add support for UDP (closes #33)
API Changes
-----------

The port notation is extended to support "/udp" or "/tcp" at the *end*
of the specifier string (and defaults to tcp if "/tcp" or "/udp" are
missing)

`docker ps` now shows UDP ports as "frontend->backend/udp". Nothing
changes for TCP ports.

`docker inspect` now displays two sub-dictionaries: "Tcp" and "Udp",
under "PortMapping" in "NetworkSettings".

Theses changes stand true for the values returned by the HTTP API too.

This changeset will definitely break tools built upon the API (or upon
`docker inspect`). A less intrusive way to add UDP ports in `docker
inspect` would be to simply add "/udp" for UDP ports but it will still
break existing applications which tries to convert the whole field to an
integer. I believe that having two TCP/UDP sub-dictionaries is better
because it makes the whole thing more clear and more easy to parse right
away (i.e: you don't have to check the format of the string, split it
and convert the right part to an integer)

Code Changes
------------

Significant changes in network.go:

- A second PortAllocator is instantiated for the UDP range;
- PortMapper maintains separate mapping for TCP and UDP;
- The extPorts array in NetworkInterface is now an array of Nat objects
  (so we can know on which protocol a given port was mapped when
  NetworkInterface.Release() is called);
- TCP proxying on localhost has been moved away in network_proxy.go.

localhost proxy code rewrite in network_proxy.go:

We have to proxy the traffic between localhost:frontend-port and
container:backend-port because Netfilter doesn't work properly on the
loopback interface and DNAT iptable rules aren't applied there.

- Goroutines in the TCP proxying code are now explicitly stopped when
  the proxy is stopped;
- UDP connection tracking using a map (more infos in [1]);
- Support for IPv6 (to be more accurate, the code is transparent to the
  Go net package, so you can use, tcp/tcp4/tcp6/udp/udp4/udp6);
- Single Proxy interface for both UDP and TCP proxying;
- Full test suite.

[1] https://github.com/dotcloud/docker/issues/33#issuecomment-20010400
2013-07-09 17:42:35 -07:00
Victor Vieux bf7d6cbb4a rebase master 2013-07-08 13:26:29 +00:00
Caleb Spare 19121c16d9 Implement several golint suggestions, including:
* Removing type declarations where they're inferred
* Changing Url -> URL, Id -> ID in names
* Fixing snake-case names
2013-07-03 14:36:04 -07:00
Caleb Spare 1cf9c80e97 Mutex style change.
For structs protected by a single mutex, embed the mutex for more
concise usage.

Also use a sync.Mutex directly, rather than a pointer, to avoid the
need for initialization (because a Mutex's zero-value is valid and
ready to be used).
2013-07-02 15:53:08 -07:00
Victor Vieux 3042f11666 never remove the file and try to load it in start 2013-07-02 18:02:16 +00:00
Victor Vieux 27a137ccab change file location 2013-07-02 17:02:42 +00:00
Victor Vieux 06b53e3fc7 store hostConfig to /tmp while container is running 2013-07-02 12:19:25 +00:00
Michael Crosby b16ff9f859 Add Entrypoint to builder and container config
By setting an entrypoint in the Dockerfile this
allows one to run an image and only pass arguments.
2013-07-01 05:34:27 -09:00
Gabriel Monroy 67239957c9 - Fix a few bugs in external mount-bind integration 2013-06-26 15:10:38 -07:00
Solomon Hykes d4e62101ab * Runtime: better integration of external bind-mounts (run -b) into the volume subsystem (run -v) 2013-06-26 15:08:07 -07:00
Gabriel Monroy 4fdf11b2e6 + Runtime: mount volumes from a host directory with 'docker run -b' 2013-06-26 15:07:31 -07:00
Victor Vieux 63e8a4ac74 Merge pull request #970 from titanous/go1.1-unreachable
Remove code unreachable using Go 1.1
2013-06-21 10:44:40 -07:00
unclejack 66910a7602 mark command as optional for docker run 2013-06-21 11:06:41 +03:00
Jonathan Rudenberg 50b70eeb68 Remove code unreachable using Go 1.1 2013-06-20 23:19:44 -04:00
Victor Vieux ddf5a1940f Merge branch 'master' into 22-add_sizes_images_and_containers-feature 2013-06-14 10:05:06 +00:00
Victor Vieux 697282d6ad Merge pull request #804 from dotcloud/no_stdout_stale-fix
*Runtime: Fix stale command when stdout is not allocated
2013-06-13 04:22:29 -07:00
Guillaume J. Charmes 7169212683 Fix typo 2013-06-10 11:08:40 -07:00
Victor Vieux bf63cb9045 bump to master again 2013-06-05 16:01:36 +00:00
Guillaume J. Charmes 63e80384ea Fix nil pointer on some situatuion 2013-06-04 14:35:32 -07:00
Guillaume J. Charmes 7ef9833dbb Put back panic for go1.0.3 compatibility 2013-06-04 14:26:40 -07:00
Victor Vieux fd224ee590 linted names 2013-06-04 18:00:22 +00:00
Victor Vieux 86ada2fa5d drop/omit 2013-06-04 13:51:12 +00:00
Victor Vieux b515a5a9ec go vet 2013-06-04 13:24:58 +00:00
Guillaume J. Charmes 0ca8844398 Fix stale command with stdout is not allocated 2013-06-03 17:39:29 -07:00
Victor Vieux 3afdd82e42 bump to master 2013-05-30 23:38:40 +00:00
Guillaume J. Charmes 88ef309a94 Finish resize implementation client and server 2013-05-24 14:44:16 -07:00
Guillaume J. Charmes 70d2123efd Add resize endpoint to api 2013-05-23 19:33:28 -07:00
Victor Vieux 6fce89e60b bump to master 2013-05-22 13:41:29 +00:00
Guillaume J. Charmes 2e69e1727b Create a subpackage for utils 2013-05-14 22:37:35 +00:00
Victor Vieux a91b710961 add sizes in images and containers 2013-05-13 15:14:20 +02:00
Jérôme Petazzoni 6f3e868a7b Merge branch 'master' of github.com:dotcloud/docker into 471-cpu-limit 2013-05-10 14:44:50 -07:00
Jérôme Petazzoni e36752e033 if -c is not specified, do not set cpu.shares (instead of using the default value of 1024) 2013-05-07 11:43:45 -07:00
Jérôme Petazzoni efd9becb78 implement "-c" option to allocate a number of CPU shares to a container 2013-05-07 11:16:30 -07:00
Victor Vieux 10c0e99037 update to master 2013-05-07 19:23:50 +02:00
Guillaume J. Charmes 9db4972a70 Make sure the destination directory exists when using docker insert 2013-05-06 16:00:30 -07:00
Guillaume J. Charmes 9751483112 Add insert command in order to insert external files within an image 2013-05-06 16:00:30 -07:00
Victor Vieux 6f9b574f25 bump to 0.2.2 2013-05-06 11:53:00 +02:00
Guillaume J. Charmes da01dd3d56 Merge remote-tracking branch 'origin/registry-update'
+ Registry: Add the new registry support
2013-05-05 07:13:25 -07:00
shin- be75608906 Fixed checksum computing. Ensure checksum is computed when image metadata is loaded from disk. Fixed docker push workflow. Moved hash computing to utils 2013-05-06 10:56:10 -07:00
shin- ea3374bcb0 Prepend hash method to the image checksum 2013-05-06 10:54:55 -07:00
shin- 630d358384 Fixed checksum representation 2013-05-06 10:54:50 -07:00
shin- 048fd671ef Implemented checksum computation on image creation (necessary for new push primitive) 2013-05-06 10:52:42 -07:00
Victor Vieux 4f0bda2dd5 up to date with master 2013-05-02 18:36:23 +02:00
Guillaume J. Charmes 897cc573f0 Fix the graph.Create prototype 2013-05-02 09:23:29 -07:00
Guillaume J. Charmes b0459adc27 Comply to the new graph.Create() prototype 2013-05-02 09:14:23 -07:00
Guillaume J. Charmes 3edd14b8c2 Implement the data volume removal 2013-05-02 09:14:23 -07:00
Guillaume J. Charmes 4099a31304 Implement the -volumes-from in order to mount volumes from an other container 2013-05-02 09:14:22 -07:00
Guillaume J. Charmes 6fb495bf6f Move the id of volumes to Container (instead of Container.Config) 2013-05-02 09:14:22 -07:00
Guillaume J. Charmes faf8daa7c6 Switch back config to map[string]struct{} 2013-05-02 09:14:22 -07:00
Guillaume J. Charmes 8d9aaee60b Handle data volumes mount points 2013-05-02 09:14:22 -07:00
Guillaume J. Charmes 35d704c8a0 Change the volumes type to map[string]string to store both source and destination 2013-05-02 09:14:22 -07:00
Solomon Hykes 1df5f4094b docker run -v PATH: bind a new data volume to a container 2013-05-02 09:14:22 -07:00
Victor Vieux cf19be44a8 added run (wip), fixed ps and images, added port and tag 2013-04-23 18:20:53 +02:00
Guillaume J. Charmes f926ed182f Allow to kill/stop ghosts 2013-04-22 17:53:32 -07:00
Guillaume J. Charmes d440782e17 Allow to kill container after docker server restarts 2013-04-22 17:52:38 -07:00
Guillaume J. Charmes 82848d4158 Allow to wait on container even after docker server restarts using lxc-info 2013-04-22 17:52:38 -07:00
Evan Wies ffe16e3224 Fix typo (ghot -> ghost) 2013-04-22 18:37:06 -04:00
Solomon Hykes 76b40ad6c9 Merge remote-tracking branch 'origin/check_kernel_capabilities' 2013-04-20 17:40:25 -07:00
Solomon Hykes 931ca464a7 'docker ps' shows port mappings 2013-04-19 19:29:13 -07:00
Guillaume J. Charmes e92c4b1f39 Merge pull request #415 from dotcloud/261-choose_grace_period-feature
added -t in docker stop and restart to choose grace period
2013-04-19 12:42:34 -07:00
Victor Vieux b295239de2 added: info, history, logs, ps, start, stop, restart, rm, rmi 2013-04-19 15:24:37 +02:00
Guillaume J. Charmes f68d107a13 Remove the NO_MEMORY_LIMIT constant 2013-04-18 21:08:20 -07:00
Guillaume J. Charmes 640efc2ed2 Add capabilities check to allow docker to run on kernel that does not have all options 2013-04-18 20:55:41 -07:00
Victor Vieux 1615bb08c7 added -t in docker stop and restart to choose grace period 2013-04-17 11:56:30 +02:00
Guillaume J. Charmes 7b0e96f1f4 Manually pass the env to docker-init instead of relying on lxc to pass it 2013-04-16 14:32:50 -07:00
Solomon Hykes fdf3308260 Merge remote-tracking branch 'origin/396-disabling_memory_limit-feature' 2013-04-13 21:25:53 -07:00
Solomon Hykes cdf90bb04b Merge remote-tracking branch 'origin/96-dns_issue-fix' 2013-04-12 17:50:59 -07:00
Guillaume J. Charmes 1967c8342a Allow to disable memory limit at compilation time 2013-04-12 10:48:20 -07:00
Guillaume J. Charmes 7673afc843 Allow use to set his own dns via -dns 2013-04-12 10:43:13 -07:00
Solomon Hykes b1fbebb4a3 Fixed wording of ghost-related messages 2013-04-12 10:39:08 -07:00
Solomon Hykes 3527291b47 Merge remote-tracking branch 'origin/ghost_handling-fix' 2013-04-12 10:33:36 -07:00
Guillaume J. Charmes bb22cd492e Add unit test for hanging kill + fix other tests behaviour 2013-04-11 16:21:19 -07:00
Guillaume J. Charmes 313d13ea01 Detect and mark ghost container. 2013-04-11 09:26:17 -07:00