open-nomad/drivers/docker
Mahmood Ali aa59280edc docker: periodically reconcile containers
When running at scale, it's possible that Docker Engine starts
containers successfully but gets wedged in a way where API call fails.
The Docker Engine may remain unavailable for arbitrary long time.

Here, we introduce a periodic reconcilation process that ensures that any
container started by nomad is tracked, and killed if is running
unexpectedly.

Basically, the periodic job inspects any container that isn't tracked in
its handlers.  A creation grace period is used to prevent killing newly
created containers that aren't registered yet.

Also, we aim to avoid killing unrelated containters started by host or
through raw_exec drivers.  The logic is to pattern against containers
environment variables and mounts to infer if they are an alloc docker
container.

Lastly, the periodic job can be disabled to avoid any interference if
need be.
2019-10-17 08:36:01 -04:00
..
cmd
docklog comment on use of init() for plugin handlers 2019-06-18 20:54:55 -04:00
test-resources/docker docker: periodically reconcile containers 2019-10-17 08:36:01 -04:00
util docker: Support stats on Windows 2019-02-22 14:19:58 +01:00
config.go docker: periodically reconcile containers 2019-10-17 08:36:01 -04:00
config_test.go Support driver config fields being set to nil (#5391) 2019-03-05 21:47:06 -05:00
coordinator.go docker: add additional commens 2019-07-31 01:03:20 -04:00
coordinator_test.go
driver.go volumes: Add support for mount propagation 2019-10-14 14:09:58 +02:00
driver_darwin_test.go
driver_default.go driver/docker: use default network mode 2019-07-31 21:07:46 +03:00
driver_linux_test.go tests: IsTravis() -> IsCI() 2019-02-20 08:21:03 -05:00
driver_pre09.go
driver_test.go docker: defensive against failed starts 2019-09-13 13:02:35 -04:00
driver_unix_test.go volumes: Add support for mount propagation 2019-10-14 14:09:58 +02:00
driver_windows.go driver/docker: use default network mode 2019-07-31 21:07:46 +03:00
driver_windows_test.go
fingerprint.go docker: report unhealthy in unsupported Windows (#5356) 2019-02-27 08:10:23 -05:00
fingerprint_test.go docker: report unhealthy in unsupported Windows (#5356) 2019-02-27 08:10:23 -05:00
handle.go docker: DestroyTask was not cleaning up Docker images because it was erroring early due to an attempt to inspect an image that had already been removed 2019-06-03 19:04:27 +00:00
network.go driver/networking: don't recreate existing network namespaces 2019-09-25 14:58:17 -04:00
progress.go
progress_test.go
reconciler.go docker: periodically reconcile containers 2019-10-17 08:36:01 -04:00
reconciler_test.go docker: periodically reconcile containers 2019-10-17 08:36:01 -04:00
state.go
stats.go docker: improve stats names and comments 2019-04-02 09:18:38 -07:00
stats_test.go docker: improve stats names and comments 2019-04-02 09:18:38 -07:00
utils.go utils: add missing error info in case of cmd failure (#6355) 2019-09-24 09:33:27 -04:00
utils_test.go driver/docker: Support volumes field in Windows 2019-04-25 09:02:44 -04:00
utils_unix_test.go
utils_windows_test.go driver/docker: Support volumes field in Windows 2019-04-25 09:02:44 -04:00
win32_volume_parse.go driver/docker: support unix destination mount path in windows 2019-08-01 19:54:08 +03:00