Commit Graph

231 Commits

Author SHA1 Message Date
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
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
3ea6442a29 Add cp command and copy api endpoint
The cp command and copy api endpoint allows users
to copy files and or folders from a containers filesystem.

Closes #382
Upstream-commit: 5b8cfbe15c29efd3e72ea97ba87867590aeeba25
Component: engine
2013-08-06 16:09:54 +00:00
0c11df3e01 Merge pull request #1267 from sridatta/new-clean-init
* Runtime: Fix to "Inject dockerinit at /.dockerinit"
Upstream-commit: f6fa353dd8be732aaed20f0c64a5ae8ccc9f1dbc
Component: engine
2013-08-05 13:23:22 -07:00
13233c6186 Merge pull request #1350 from ndarilek/1348-add-hostname-to-environment
Runtime: add hostname to environment
Upstream-commit: 29de2432eaf4fdb3d1545693d9c80af4538dbda3
Component: engine
2013-08-02 13:58:43 -07:00
30e6d541d0 Add hostname to the container environment.
Upstream-commit: 9a604acc23d30d00ae907acdf756cbcdf0e4cf83
Component: engine
2013-07-31 09:50:53 -05:00
18178e0bee Merge pull request #1334 from dotcloud/1314-compat_broke-fix
Discard error when loading old container format
Upstream-commit: cd9f7f29d135d0ebe32214696f7bfe2139698a6d
Component: engine
2013-07-31 01:08:08 -07:00
7e99f4ac78 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.
Upstream-commit: 5dc86d7bca17c2996264a18cc26f06d30e532588
Component: engine
2013-07-29 14:17:15 -07:00
224e45118c fix #1314 discard error when loading old container format
Upstream-commit: b2aa877bf0a3f140516d1c17117369b2194f2b91
Component: engine
2013-07-29 16:40:35 +00:00
4118c3f059 Change reserve-compatibility to reverse-compatibility
Upstream-commit: 4ebe2cf348915415c34503aca7a5663177e0002f
Component: engine
2013-07-26 01:10:42 -07:00
4350e3145d Fixes #505 - Make sure all output is send on the network before closing
Upstream-commit: fd9ad1a19469d07944ca9b417861d63ecec2ef42
Component: engine
2013-07-24 15:48:51 -07:00
764ae64982 Merge branch 'master' into 1167_events_endpoint-feature
Upstream-commit: ee05f97c9a8542ded8631a33e343f07f1cecd4de
Component: engine
2013-07-24 11:49:04 +00:00
056ee7cfd5 add die event
Upstream-commit: a41384ad7312a21fd8fe429637c8d6b5c883fa2a
Component: engine
2013-07-23 15:42:34 +00:00
be9f5063e4 Merge branch '858-disable-network-configuration' of https://github.com/stfp/docker into stfp-858-disable-network-configuration
Upstream-commit: 8165e51eccd15b7eed3939ada6017ed12b9e81b3
Component: engine
2013-07-23 08:44:12 +00:00
d56c0e2aac Invert network disable flag and logic (unbreaks TestAllocate*PortLocalhost)
Upstream-commit: bc172e5e5f1f231f878727a180a8da46e653c0a7
Component: engine
2013-07-22 19:00:35 -07:00
3b70a407de Merge pull request #1244 from dotcloud/1020_add_variable
*Runtime: Add container=lxc in default env
Upstream-commit: 8ea9ccf3a7705020d939a186db43821bc4564992
Component: engine
2013-07-22 09:17:30 -07:00
ca9f0f0f1d Support completely disabling network configuration with docker -d -b none
Upstream-commit: 49673fc45cc5cfc15219bf1eb6eaff7621696919
Component: engine
2013-07-21 17:49:09 -07:00
edbf8f58a1 Support networkless containers with new docker run option '-n'
Upstream-commit: 3342bdb33184b83cac66921807c5403168d13f6b
Component: engine
2013-07-21 17:11:47 -07:00
d5db6e05ee add container=lxc in default env
Upstream-commit: 67f1e3f5ed4d3061e07e910e28ac866b7bb13e18
Component: engine
2013-07-19 17:22:16 +00:00
6e52a096e9 remove usage from tests
Upstream-commit: ea1258852493a83754553163db1db52a72ffb8fc
Component: engine
2013-07-19 15:56:00 +00:00
c5cd9cfc76 Merge pull request #1211 from dotcloud/new_logs
*Runtime: Logs are now synchronised
Upstream-commit: 0bd534adcf0933d19540506f790d00d8d1cb23d4
Component: engine
2013-07-19 06:43:29 -07:00
3498daf9b5 add support for container ID files (a la pidfile)
Upstream-commit: 64e74cefb746caa7f2a581149bbd523dd1ac9215
Component: engine
2013-07-19 16:03:45 +03:00
148c813e5f Merge pull request #1207 from crosbymichael/819-use-persistent-volume
* Runtime: Do not overwrite container volumes from config
Upstream-commit: d6fb313220c2275c4e76f6191905fb382e54a58d
Component: engine
2013-07-18 18:51:00 -07:00
7c7e6abf06 + Runtime: inject dockerinit at /.dockerinit instead of overwriting /sbin/init. This makes it possible to run /sbin/init inside a container.
Upstream-commit: 5d8efc107d2c7b7da61a6d22657190c6f13713d2
Component: engine
2013-07-17 17:13:34 -07:00
df2dfb45a8 Merge -b and -v options
Upstream-commit: eefbadd230d2788b0bdf0daac38ada0d145e3861
Component: engine
2013-07-15 17:51:32 -07:00
f98fac335f Do not overwrite container volumes from config
Fixes #819 Use same persistent volume when a container is restarted
Upstream-commit: 92cbb7cc80a63299b5670a9fcbb2d11789200696
Component: engine
2013-07-15 11:59:11 -09:00
80066854b8 store both logs in a same file, as JSON
Upstream-commit: 599f85d4e4362f24dc2850c71a689671122c456b
Component: engine
2013-07-15 16:17:58 +00:00
cb4f99ad54 Merge branch 'master' into new_logs
Upstream-commit: 5756ba9bc48ef428bd73b9b123807097c1519db0
Component: engine
2013-07-15 13:57:54 +00:00
6fdf5346ea Copy VolumesRW values when using --volumes-from
Fixes #1201
Upstream-commit: 5ae8c7a98592f83a31f3f45fc22728e45e95626c
Component: engine
2013-07-14 18:23:20 -09:00
e7310096d4 Merge pull request #1102 from dotcloud/1098-store_hostconfig_tmp
* Runtime: bind mounts are now preserved upon container restart
Upstream-commit: a909223ee2c062a26e533c1c7663fa113c942831
Component: engine
2013-07-12 05:04:10 -07:00
750c01d0af wip
Upstream-commit: 941e3e2ef09092306a7a287ce62b6fb518af9c56
Component: engine
2013-07-11 17:18:28 +00:00
b293c53143 export portmapping in network.go
Upstream-commit: d918c7d9de6a2949d4010ec08f08b0182d159fe7
Component: engine
2013-07-10 14:09:35 +00:00
c69035fce1 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
Upstream-commit: fac0d87d00ada08309ea3b82cae69beeef637c89
Component: engine
2013-07-09 17:42:35 -07:00
d8be5aafec rebase master
Upstream-commit: bf7d6cbb4af2e7176c66d2ad74515699b7898fea
Component: engine
2013-07-08 13:26:29 +00:00
1c71d0a65e Implement several golint suggestions, including:
* Removing type declarations where they're inferred
* Changing Url -> URL, Id -> ID in names
* Fixing snake-case names
Upstream-commit: 19121c16d9514b391ce8f15aeff3c47c1ea5a841
Component: engine
2013-07-03 14:36:04 -07:00
8f5746f4d9 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).
Upstream-commit: 1cf9c80e976fb60b4d5d489cd1c4c9959bcc4f7f
Component: engine
2013-07-02 15:53:08 -07:00
805a9b9625 never remove the file and try to load it in start
Upstream-commit: 3042f11666a38ea6b1da206de372bf85463db945
Component: engine
2013-07-02 18:02:16 +00:00