moby/daemon
Stephen J Day 516792001a cluster/executor: check mounts at start
While it is important to not create controllers for an invalid task,
certain properties should only be checked immediately before use. Early
host validation of mounts prevents resolution of the task Executor when
the mounts are not relevant to execution flow. In this case, we have a
check for the existence of a bind mount path in a creation function that
prevents a task controller from being resolved. Such early validation
prevents one from interacting directly with a controller and result in
unnecessary error reporting.

In accordance with the above, we move the validation of the existence of
host bind mount paths to the `Controller.Start` phase. We also call
these "checks", as they are valid mounts but reference non-existent
paths.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
(cherry picked from commit 92899ffac8)
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2017-02-06 15:02:23 -08:00
..
caps Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
cluster cluster/executor: check mounts at start 2017-02-06 15:02:23 -08:00
events Merge pull request #25800 from vdemeester/25798-fix-event-actions 2016-10-28 05:20:49 +02:00
exec Move StreamConfig out of runconfig 2016-11-14 14:03:05 -08:00
graphdriver Moves graphdriver plugn docs out of experimental 2017-01-03 21:58:43 -05:00
initlayer Implement content addressability for plugins 2016-12-27 13:31:14 -08:00
links Replace usage of pkg/nat with go-connections/nat. 2015-12-22 13:31:46 -05:00
logger Fix a error of the function 'CopyMessage' in 'daemon/logger/logger.go' 2016-11-30 14:08:05 -08:00
network Fix autostart for swarm scope connected containers 2016-09-13 14:21:58 -07:00
apparmor_default.go daemon: switch to 'ensure' workflow for AppArmor profiles 2016-12-12 16:16:50 -08:00
apparmor_default_unsupported.go daemon: switch to 'ensure' workflow for AppArmor profiles 2016-12-12 16:16:50 -08:00
archive.go Fix uneccessary calls to volume.Unmount() 2016-11-10 14:04:08 -05:00
archive_unix.go Windows: docker cp consistent paths 2016-05-06 16:08:53 -07:00
archive_windows.go Windows: Remove TP4 support from main code 2016-04-06 12:12:20 -07:00
attach.go Move errors/ to api/errors 2016-09-16 12:27:13 -04:00
auth.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
bindmount_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
bindmount_unix.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
cache.go Implement build cache based on history array 2016-09-23 11:30:06 -07:00
changes.go Windows: support docker diff 2016-10-28 11:06:54 -07:00
checkpoint.go Restrict checkpoint name to prevent directory traversal 2016-11-28 11:17:55 -08:00
cluster.go add docker network prune 2016-10-25 06:43:54 +00:00
commit.go commit: do not change container labels on commit 2017-01-04 12:42:42 +01:00
config.go Rename Remote API to Engine API 2016-11-22 16:49:58 -08:00
config_common_unix.go Add expected 3rd party binaries commit ids to info 2016-11-09 07:42:44 -08:00
config_experimental.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
config_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
config_test.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
config_unix.go Rename Remote API to Engine API 2016-11-22 16:49:58 -08:00
config_unix_test.go fix config load error with ulimits 2016-10-17 18:48:40 +08:00
config_windows.go Add expected 3rd party binaries commit ids to info 2016-11-09 07:42:44 -08:00
config_windows_test.go fix config load error with ulimits 2016-10-17 18:48:40 +08:00
container.go xFix issue for --hostname when running in "--net=host" 2016-12-09 14:42:16 -08:00
container_operations.go xFix issue for --hostname when running in "--net=host" 2016-12-09 14:42:16 -08:00
container_operations_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
container_operations_unix.go plugins: support for devices 2016-11-22 16:16:33 -08:00
container_operations_windows.go Windows: Factor out unused fields in container 2016-10-13 14:51:10 -07:00
create.go xFix issue for --hostname when running in "--net=host" 2016-12-09 14:42:16 -08:00
create_unix.go Add new HostConfig field, Mounts. 2016-09-13 09:55:35 -04:00
create_windows.go Windows: Revert 27884 2016-11-18 13:36:37 -08:00
daemon.go Merge pull request #30331 from vieux/1.13.1-rc1-cherrypicks 2017-01-26 19:21:38 -08:00
daemon_experimental.go move plugins out of experimental 2016-11-10 15:51:32 -08:00
daemon_linux.go Fix container mount cleanup issues 2016-03-30 17:25:49 -07:00
daemon_linux_test.go Fix container mount cleanup issues 2016-03-30 17:25:49 -07:00
daemon_solaris.go Implement content addressability for plugins 2016-12-27 13:31:14 -08:00
daemon_test.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
daemon_unix.go do not create init-dir if not needed 2017-01-24 17:00:52 -08:00
daemon_unix_test.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
daemon_unsupported.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
daemon_windows.go Implement content addressability for plugins 2016-12-27 13:31:14 -08:00
debugtrap.go Reduce spew data dumped 2016-11-18 13:32:26 -08:00
debugtrap_unix.go Spew debugging 2016-11-03 10:05:11 -07:00
debugtrap_unsupported.go Spew debugging 2016-11-03 10:05:11 -07:00
debugtrap_windows.go Spew debugging 2016-11-03 10:05:11 -07:00
delete.go Rename Remote API to Engine API 2016-11-22 16:49:58 -08:00
delete_test.go make client side know container removal in progress 2016-09-27 18:06:54 +08:00
discovery.go validate heartbeat in discovery cluster opts 2016-09-01 01:07:05 +08:00
discovery_test.go validate heartbeat in discovery cluster opts 2016-09-01 01:07:05 +08:00
disk_usage.go Add reference filter and deprecated filter param… 2016-11-11 15:34:01 +01:00
errors.go Move errors/ to api/errors 2016-09-16 12:27:13 -04:00
events.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
events_test.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
exec.go Rename Remote API to Engine API 2016-11-22 16:49:58 -08:00
exec_linux.go Remove hacked Windows OCI spec, compile fixups 2016-09-27 12:07:35 -07:00
exec_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
exec_windows.go Windows: Plumb through user 2016-11-08 17:41:56 -08:00
export.go pkg/archive: remove unnecessary Archive and Reader type 2016-10-20 19:31:24 -07:00
getsize_unix.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
health.go Use Container.Config.Shell instead of hardcoded… 2016-11-19 23:45:58 -08:00
health_test.go Fix deadlock on cancelling healthcheck 2016-11-18 13:37:44 -08:00
image.go Deprecate repo:shortid syntax 2016-10-06 17:12:17 -07:00
image_delete.go Add basic prometheus support 2016-10-27 10:34:38 -07:00
image_exporter.go Move some image related methods & struct to smaller files 2016-05-21 22:36:11 +02:00
image_history.go Add basic prometheus support 2016-10-27 10:34:38 -07:00
image_inspect.go Inspect populate image OSVersion 2016-10-06 11:46:24 -07:00
image_pull.go Implement content addressability for plugins 2016-12-27 13:31:14 -08:00
image_push.go Implement content addressability for plugins 2016-12-27 13:31:14 -08:00
image_tag.go Generalize content addressable and reference storage 2016-09-15 18:08:19 -07:00
images.go Ensure proper value is used when computing reclaimable space 2017-01-24 15:41:06 -08:00
import.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
info.go api: types: keep info.SecurityOptions a string slice 2016-11-21 14:45:05 -08:00
info_unix.go api: types: keep info.SecurityOptions a string slice 2016-11-21 14:45:05 -08:00
info_windows.go api: types: keep info.SecurityOptions a string slice 2016-11-21 14:45:05 -08:00
inspect.go record pid of exec'd process 2016-10-20 17:06:11 +02:00
inspect_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
inspect_unix.go Add new HostConfig field, Mounts. 2016-09-13 09:55:35 -04:00
inspect_windows.go Add new HostConfig field, Mounts. 2016-09-13 09:55:35 -04:00
keys.go Change root_maxkeys 2016-06-27 10:23:37 -07:00
keys_unsupported.go Change root_maxkeys 2016-06-27 10:23:37 -07:00
kill.go Taking stop-signal into account when docker kill 2016-10-24 11:10:14 -07:00
links.go Windows: Factor out sqlite 2016-12-02 13:40:06 -08:00
links_linux.go Windows: Factor out sqlite 2016-12-02 13:40:06 -08:00
links_linux_test.go Windows: Factor out sqlite 2016-12-02 13:40:06 -08:00
links_notlinux.go Windows: Factor out sqlite 2016-12-02 13:40:06 -08:00
list.go Replace all "Filter" field with "Filters" for consistency 2016-11-01 23:09:30 +08:00
list_unix.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
list_windows.go Move Container to its own package. 2015-12-03 17:39:49 +01:00
logdrivers_linux.go added logentries driver 2016-10-06 22:48:53 -03:00
logdrivers_windows.go Windows: Enable fluentd logdriver 2016-11-08 19:54:57 -08:00
logs.go Move stdio attach from libcontainerd backend to callback 2016-10-24 00:20:36 -07:00
logs_test.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
metrics.go Add basic prometheus support 2016-10-27 10:34:38 -07:00
monitor.go Move StreamConfig out of runconfig 2016-11-14 14:03:05 -08:00
monitor_linux.go Adding postRunProcessing infrastructure for hanlding Windows Update. 2016-04-06 14:03:05 -07:00
monitor_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
monitor_windows.go Move stdio attach from libcontainerd backend to callback 2016-10-24 00:20:36 -07:00
mounts.go Add new HostConfig field, Mounts. 2016-09-13 09:55:35 -04:00
names.go Restrict checkpoint name to prevent directory traversal 2016-11-28 11:17:55 -08:00
network.go Remove attachable network on swarm leave 2017-01-26 04:31:34 -08:00
oci_linux.go do not require custom build of tini 2017-01-24 16:31:39 -08:00
oci_solaris.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
oci_windows.go Windows: Unify workdir handling 2017-02-03 00:40:46 -08:00
pause.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
prune.go Convert DanglingOnly to Filters for docker image prune 2016-12-07 16:08:18 -08:00
rename.go Fix docker rename with linked containers 2016-06-27 19:58:05 -07:00
resize.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
restart.go Allow providing a custom storage directory for docker checkpoints 2016-10-28 07:56:05 -04:00
search.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
search_test.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
seccomp_disabled.go Replace old oci specs import with runtime-specs 2016-08-17 09:38:34 -07:00
seccomp_linux.go daemon: add a flag to override the default seccomp profile 2016-11-02 21:41:29 +01:00
seccomp_unsupported.go Fix seccomp output in docker info 2016-07-08 17:26:42 -07:00
secrets.go do not force target type for secret references 2016-11-21 14:45:39 -08:00
secrets_linux.go secrets: secret management for swarm 2016-11-09 14:27:43 -05:00
secrets_unsupported.go secrets: secret management for swarm 2016-11-09 14:27:43 -05:00
selinux_linux.go Rename daemon/utils_*.go to selinux 2015-11-12 15:48:41 -08:00
selinux_unsupported.go Rename daemon/utils_*.go to selinux 2015-11-12 15:48:41 -08:00
start.go fix #29199, reset container if container start failed 2016-12-07 16:16:55 -08:00
start_unix.go Add functional support for Docker sub commands on Solaris 2016-11-07 09:06:34 -08:00
start_windows.go Swarm-mode overlay networking support for windows 2016-11-10 09:54:40 -08:00
stats.go Rename Remote API to Engine API 2016-11-22 16:49:58 -08:00
stats_collector.go Windows: stats support 2016-09-16 11:56:15 -07:00
stats_collector_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
stats_collector_unix.go Windows: stats support 2016-09-16 11:56:15 -07:00
stats_collector_windows.go Windows: stats support 2016-09-16 11:56:15 -07:00
stats_unix.go Removed engine-api leftovers 2016-09-21 12:36:52 +02:00
stats_windows.go Windows: stats support 2016-09-16 11:56:15 -07:00
stop.go Update docker stop and docker restart to allow not specifying timeout and use the one specified at container creation time. 2016-10-17 12:53:35 -07:00
top_unix.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
top_unix_test.go Validate arguments for ps in docker top 2016-07-08 05:58:11 +00:00
top_windows.go Windows: docker top implementation 2016-09-07 16:29:02 -07:00
unpause.go remove running judgement when unpause container 2016-08-29 10:16:18 +08:00
update.go Fix update clear the restart policy of monitor 2017-01-04 12:44:55 +01:00
update_linux.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
update_solaris.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
update_windows.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
volumes.go Rename Remote API to Engine API 2016-11-22 16:49:58 -08:00
volumes_unit_test.go reorder imports with goimports 2015-12-16 16:50:25 +01:00
volumes_unix.go close the file 2016-11-21 13:23:23 -08:00
volumes_windows.go Remove hacked Windows OCI spec, compile fixups 2016-09-27 12:07:35 -07:00
wait.go Fix race on force deleting container created by task 2016-06-14 16:49:04 -07:00
workdir.go COPY file . after WORKDIR (now always created) 2016-11-28 11:12:45 -08:00