With LCE, there are multiple ContainerRuntimes available for handling different types of containers; default, docker, java sandbox. Admins should have the ability to override the user decision and set a single global ContainerRuntime to be used for all containers.
One reason to use Docker containers is to be able to isolate different workloads, even, if they run as the same user.
I have noticed some issues in the current design:
1. DockerLinuxContainerRuntime mounts containerLocalDirs nm-local-dir/usercache/user/appcache/application_1491598755372_0011/ and userLocalDirs nm-local-dir/usercache/user/, so that a container can see and modify the files of another container. I think the application file cache directory should be enough for the container to run in most of the cases.
2. The whole cgroups directory is mounted. Would the container directory be enough?
3. There is no way to enforce exclusive use of Docker for all containers. There should be an option that it is not the user but the admin that requires to use Docker.