Commit Graph

2987 Commits

Author SHA1 Message Date
b662f7de79 Cleanup restart logic in monitor
Signed-off-by: Michael Crosby <michael@docker.com>
Upstream-commit: e0a076d486ea49529dc3aeef2179eb0c406d0773
Component: engine
2014-08-13 15:56:34 -07:00
49eb58207e Restart containers based on restart policy
Signed-off-by: Michael Crosby <michael@docker.com>
Upstream-commit: bd8c9dc2395032a893e959e48f9a8536858d67e0
Component: engine
2014-08-13 15:56:34 -07:00
4737f7cea5 Extract log utils into pkg/log
Docker-DCO-1.1-Signed-off-by: Josiah Kiehl <josiah@capoferro.net> (github: capoferro)
Upstream-commit: a02f67be5b17da63d475e6f35956c1e72c3b2e7b
Component: engine
2014-08-13 15:18:15 -07:00
1a6b687cce Merge pull request #7506 from shykes/cleanup-daemonconfig
Cleanup: refactor parsing and handling of Daemon config
Upstream-commit: 13eb477b62b51d906fa88f508d2c560a2b4946aa
Component: engine
2014-08-13 15:07:13 -07:00
fdd5ed90fc Merge pull request #7548 from crosbymichael/proxy-exec
Move userland proxies out of daemon process
Upstream-commit: fd1b563b4faede0a1d3fc91d4243442ab2ebe1a6
Component: engine
2014-08-13 14:03:40 -07:00
ccc89a6404 Merge pull request #7484 from cpuguy83/cleanup_volume_init
Cleanup: initializeVolume
Upstream-commit: 0c6b137f0602b619b3947e4c9737ccb363c91d96
Component: engine
2014-08-13 16:18:02 -04:00
5f2e120f77 Cleanup: initializeVolume
- Use a common struct for Volumes
- Split out some functionality in intializeVolume into separate functions
- Removes some duplicate code
- In general much easier to grok the code now

Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
Upstream-commit: e350df5b2c95be74c5808c28cac5dee763b11d8b
Component: engine
2014-08-13 15:55:59 -04:00
fc0d245526 Move remote API config out of daemon/
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 1d10c55aec891df609d36c90ee6c30adb24c16c4
Component: engine
2014-08-13 19:25:51 +00:00
506b7bed3d Check for conflicting daemon config options in NewDaemon
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 1eba59eb249b14a0499a52495be2c27b5afc4749
Component: engine
2014-08-13 19:25:51 +00:00
9a4f8cadf4 Parse daemon configuration in daemon.Config.InstallFlags instead of main
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 353b7c8ec77b30fa83dac5ec0778193f6de8b437
Component: engine
2014-08-13 19:25:51 +00:00
ec374f9227 Move daemonconfig into daemon
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: a4befff533cf786df7a4da29798984ebb2268d8c
Component: engine
2014-08-13 19:09:51 +00:00
b3e9a7cd3b Move userland proxies out of daemon's process
This PR moves the userland proxies for TCP and UDP traffic out of the
main docker daemon's process ( from goroutines per proxy ) to be a
separate reexec of the docker binary.  This reduces the cpu and memory
needed by the daemon and if the proxy processes crash for some reason
the daemon is unaffected.  This also displays in the standard process
tree so that a user can clearly see if there is a userland proxy that is
bound to a certain ip and port.

```bash
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS                                          NAMES
5d349506feb6        busybox:buildroot-2014.02   "sh"                13 minutes ago      Up 1 seconds        0.0.0.0:49153->81/tcp, 0.0.0.0:49154->90/tcp   hungry_pike
root@1cbfdcedc5a7:/go/src/github.com/docker/docker# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  18168  3100 ?        Ss   21:09   0:00 bash
root      8328  0.7  0.6 329072 13420 ?        Sl   22:03   0:00 docker -d -s vfs
root      8373  1.0  0.5 196500 10548 ?        Sl   22:03   0:00 userland-proxy -proto tcp -host-ip 0.0.0.0 -host-port 49153 -container-ip 10.0.0.2 -container-port 81
root      8382  1.0  0.5 270232 10576 ?        Sl   22:03   0:00 userland-proxy -proto tcp -host-ip 0.0.0.0 -host-port 49154 -container-ip 10.0.0.2 -container-port 90
root      8385  1.2  0.0   3168   184 pts/0    Ss+  22:03   0:00 sh
root      8408  0.0  0.1  15568  2112 ?        R+   22:03   0:00 ps aux
```

This also helps us to cleanly cleanup the proxy processes by stopping
these commands instead of trying to terminate a goroutine.

Signed-off-by: Michael Crosby <michael@docker.com>
Upstream-commit: b4e2f5ed962f8ef81dbc2cbb1ff2a06bb64f8211
Component: engine
2014-08-13 11:54:47 -07:00
779c425729 Merge pull request #6162 from vbatts/vbatts-ps_filter
docker ps: introducing filters
Upstream-commit: c9c271858a652583ba548cb2ea75df68b51a9dd3
Component: engine
2014-08-13 11:44:48 -07:00
92c1c69d9f Merge pull request #7555 from LK4D4/fix_vet_warnings
Fix go vet warnings
Upstream-commit: ad7279e48053adfde3ba20a5c67e812a7ec677f6
Component: engine
2014-08-13 10:40:38 -07:00
acbbac3aa0 docker ps: introducing filters
* starting with filtering for exit codes. `docker ps -a --filter 'exited=1'`
* API doc for filter parameter
* formatting filters for help usage
* tweaks for review

This requires https://github.com/dotcloud/docker/pull/4430

Docker-DCO-1.1-Signed-off-by: Vincent Batts <vbatts@redhat.com> (github: vbatts)
Upstream-commit: 84146719d8b8322e302e7a0250fe8a3ee1a4edcd
Component: engine
2014-08-13 09:12:33 -04:00
00b87e1af9 Fix go vet warnings
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
Upstream-commit: 391c35c82252633eb415fdade08103a8a0818fde
Component: engine
2014-08-13 11:37:30 +04:00
d27f6d0c6d Remove deprecated server/ package
Victory!

Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 63503cafe4addb7d275244fbcce0e10d67225cc9
Component: engine
2014-08-13 06:56:45 +00:00
3ab02734f3 Move "build" to daemon/build.go
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 491deae9b8866b5b0774bbc92ee82f7cd7b565eb
Component: engine
2014-08-13 03:12:33 +00:00
01c8dcaf20 fix goroutines leak and exit code
Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)

Signed-off-by: Victor Vieux <vieux@docker.com>
Upstream-commit: b06311a72e7979653f09ba8175e10733e7116985
Component: engine
2014-08-13 00:03:56 +00:00
a11716ca83 fix #7374 leftover
Signed-off-by: Victor Vieux <vieux@docker.com>
Upstream-commit: bcfd6a653b5038679246b023d83476be073d4c91
Component: engine
2014-08-12 23:37:33 +00:00
2fbe59b1d9 Use argv0 as reexec implementation for dockerinit
This changes the way the exec drivers work by not specifing a -driver
flag on reexec.  For each of the exec  drivers they register their own
functions that will be matched aginst the argv 0 on exec and called if
they match.

This also allows any functionality to be added to docker so that the
binary can be reexec'd and any type of function can be called.  I moved
the flag parsing on docker exec to the specific initializers so that the
implementations do not bleed into one another.  This also allows for
more flexability within reexec initializers to specify their own flags
and options.

Signed-off-by: Michael Crosby <michael@docker.com>
Upstream-commit: 73210671764fc3de133a627205582e069e1ff43d
Component: engine
2014-08-11 11:47:21 -07:00
349e2e4036 Merge pull request #7502 from LK4D4/catch_error_console
Catch error on console creation
Upstream-commit: e033425f0bcf58f1409e7a10a408c778f1c754e4
Component: engine
2014-08-11 12:13:53 -04:00
10183d52c2 Catch error on console creation
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
Upstream-commit: 93f6cf035156d3b17cbf61f1a61926c068bd8e92
Component: engine
2014-08-09 22:10:44 +04:00
6fa220da5d Fix error message on logging events
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
Upstream-commit: 7afc49b40bd3a2c86a807a5ab4c722b12932d856
Component: engine
2014-08-09 18:45:38 +04:00
9a5247f7ee Move "info" to daemon/info.go
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 94715e8e643f0bc9aa57841b346f5196f75f0dc0
Component: engine
2014-08-08 03:01:55 +00:00
722d8e53b5 Merge pull request #7374 from cpuguy83/revert_rm_f_deprecation
Revert --stop/--kill and use SIGKILL instead
Upstream-commit: 414ccee23a25df258f9496e721dbfb6f1773ea9a
Component: engine
2014-08-07 16:47:25 -07:00
c29fd30ad7 Merge pull request #7453 from shykes/new-subsystem-maintainers
Add maintainers to daemon/ and graph/
Upstream-commit: 5d9cfde0df1453ccc66c98cabe42dd640fdb79c2
Component: engine
2014-08-07 16:43:41 -07:00
a79d7ec92b Revert rm -f deprecation use SIGKILL instead
`rm -f` was originally deprecated in favor of `rm --stop/--kill` since `rm
-f` was sending SIGTERM and potentially very slow.
Instead this will bring back `rm -f` but use SIGKILL isntead

Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
Upstream-commit: 95f86da641dfec9b3db88e0f0a8457685361a871
Component: engine
2014-08-07 18:20:43 -04:00
bdc2cfec82 Merge pull request #7329 from erikh/move_broadcastwriter
Cleanup: utils/broadcastwriter -> pkg/broadcastwriter
Upstream-commit: bc9f5cdeb5c000de5be291a5628d6eb99c1ab91d
Component: engine
2014-08-07 14:51:42 -07:00
456929c3f9 Merge pull request #7389 from tianon/replace-amd64-build-tags-with-cgo-as-appropriate
Replace amd64 build tags with cgo as appropriate
Upstream-commit: ab3e34e1874872854e93c290990e081e1b202b65
Component: engine
2014-08-07 16:24:19 -04:00
a4215f0a92 Merge pull request #7443 from ewindisch/name-id-lookup-reversal
Container name lookups to prefer IDs over names
Upstream-commit: 140e6abb17a85a569416236352a4fb07ce508480
Component: engine
2014-08-07 11:14:47 -07:00
51a5b1b1f0 Merge pull request #7446 from cpuguy83/cleanup_extract_bindmount_spec_parsing
Cleanup: extract bindmount spec parsing
Upstream-commit: dc296903f072b8e710954954acecad4ccd4e04b6
Component: engine
2014-08-07 11:48:07 -04:00
30c7baef5a Merge pull request #7452 from shykes/7370-on-7427
Cleanup: move image management and logging out of deprecated Server
Upstream-commit: 7e12911f62080a5bf2f8da8583eebe95c648da68
Component: engine
2014-08-06 18:47:45 -07:00
5247a2be66 port usage of jsonlog to the new daemon files which were refactored
recently.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Upstream-commit: bd373712d069f5f1f8d65bc25808a068a9afdd13
Component: engine
2014-08-06 16:45:04 -07:00
00eca7c915 utils/broadcastwriter -> pkg/broadcastwriter
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Upstream-commit: 5ab09f2f7129225220fc9c0b76b2e2aec6823ee1
Component: engine
2014-08-06 16:37:01 -07:00
416ed08d2b Replace "amd64" build tags with "cgo" as appropriate, and remove where unnecessary
Signed-off-by: Andrew Page <admwiggin@gmail.com>
Upstream-commit: 89ec17d11319ae39bff19985ac59fc878fe1fe1e
Component: engine
2014-08-06 17:20:21 -06:00
c3c811b0a6 Merge pull request #7430 from tamsky/docfixes
style, grammar, spelling fixes.
Upstream-commit: bc684fae642dbf585215b9518f469634a52a5524
Component: engine
2014-08-06 16:11:52 -07:00
955fb61f46 Merge pull request #7431 from tamsky/fixes-7105
add warning re: changing value of `dm.basesize`.
Upstream-commit: e86d87e1ce8c67f0463d76f6c438a19c859f1bd3
Component: engine
2014-08-06 15:22:42 -07:00
2e8acb9277 Cleanup: extract bindmount spec parsing
Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
Upstream-commit: f34679d0a999eaf370f3544cd1c21b90b8876795
Component: engine
2014-08-06 17:22:40 -04:00
90ba5c6273 Remove last trace of Daemon->Server dependency
This removes a shim `daemon.Server` interface which was used to start
separating Daemon from Server *gradually*, without getting cyclic
dependency errors.

Now that the last Daemon->Server dependency has been removed, we can
finally remove the shim. Yay!

Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 20b0841c1bd07c6add812597e0d656d7584e48ac
Component: engine
2014-08-06 17:56:12 +00:00
812a1a7ed4 Replace Server.IsRunning with Engine.IsShutdown
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 78f0a914ee982126793534286682e6c6e4270e97
Component: engine
2014-08-06 17:56:11 +00:00
727879ad53 Cleanup: refactor shutdown and signal handling facility
This disentangles the following functions, which were previously all mixed together:

* 1) Waiting for jobs to terminate when shutting down
* 2) Handling signals in the Docker daemon
* 3) Per-subsystem cleanup handlers
* 4) pidfile management

Responsibilities are dispatched as follows:

* Signal traps are set in `main`, and trigger `engine.Shutdown`
* `engine.Shutdown` coordinates cleanup by waiting for jobs to complete, and calling shutdown handlers
* To perform cleanup at shutdown, each subsystem registers handlers with `engine.OnShutdown`
* `daemon` is one subsystem, so it registers cleanup via `engine.OnShutdown`.
* `daemon` owns the pidfile, which is used to lock access to `/var/lib/docker`. Part of its cleanup is to remove the pidfile.

Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: c9f3fd3fc7a4beb97de40ef8da7330b23397d9d3
Component: engine
2014-08-06 17:56:11 +00:00
c1114b1805 Container name lookups to prefer IDs over names
Lookups of container names should prefer the ID over
names assigned to containers by users.

Signed-off-by: Eric Windisch <eric@windisch.us>
Upstream-commit: 231e07ded4debc69422696cacc069a47a77e3175
Component: engine
2014-08-06 13:09:11 -04:00
c3b263a99f Add maintainers to daemon/ and graph/
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 5240e5f71380b68792abcd3cf54283385ec7a4f0
Component: engine
2014-08-06 10:29:15 +00:00
a40eb6a232 Rename "log_event" to "log"
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 1c11d7f93e2070c94ad22dfec3336eb1cd548280
Component: engine
2014-08-06 10:08:23 +00:00
a195939eec Separate events subsystem
* Events subsystem merged from `server/events.go` and
  `utils/jsonmessagepublisher.go` and moved to `events/events.go`
* Only public interface for this subsystem is engine jobs
* There is two new engine jobs - `log_event` and `subscribers_count`
* There is auxiliary function `container.LogEvent` for logging events for
  containers

Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
[solomon@docker.com: resolve merge conflicts]
Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 8d056423f8c433927089bd7eb6bc97abbc1ed502
Component: engine
2014-08-06 10:08:19 +00:00
f301b073e0 Move "image_delete" to daemon/image_delete.go
Note: this cannot yet be moved to graph/ because of a lingering
dependency on daemon. This has been noted in a FIXME.

Signed-off-by: Solomon Hykes <solomon@docker.com>
Upstream-commit: 7a5e3df1625df24d52e2c863706076c59803cff8
Component: engine
2014-08-06 17:18:50 -04:00
a062aab14b add warning re: changing value of dm.basesize.
Signed-off-by: Marc Tamsky <mtamsky@gmail.com> (github: tamsky)
Upstream-commit: bd30746e07e18942cea4f2d15a45fd357c957e4f
Component: engine
2014-08-05 19:28:07 -07:00
88553ea651 style, grammar, spelling fixes.
Signed-off-by: Marc Tamsky <mtamsky@gmail.com> (github: tamsky)
Upstream-commit: 07099b62563f3201877995181825d4cd4822ed89
Component: engine
2014-08-05 18:11:32 -07:00
05babb14b7 Docker should use /var/lib/container/tmp for large temporary files.
/tmp is often a tmpfs file system and large temporary files could cause
docker commands to fail.  Also using /tmp potentially allows users on the
system to get access to content, or even attack the content.  Moving the tmpdir to
/var/lib/container/tmp will protect the data.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)

Conflicts:
	docker/docker.go
Upstream-commit: b4813f2841638be28208b7b1602f12750a46ece9
Component: engine
2014-08-05 16:43:42 -04:00