Create a new DockerContainerRuntime that implements support for docker containers via container-executor. LinuxContainerExecutor should default to current behavior when launching containers but switch to docker when requested.
The current mechanism of launching/signaling containers is moved to its own (default) container runtime. In order to use docker container runtime a couple of environment variables have to be set. This will have to be revisited when we have a first class client side API to specify different container types and associated parameters. Using ‘pi’ as an example and using a custom docker image, this is how you could use the docker container runtime (LinuxContainerExecutor must be in use and the docker daemon needs to be running) :
LinuxContainerExecutor can delegate to either runtime on a per container basis. If the docker container type is selected, LinuxContainerExecutor delegates to the DockerContainerRuntime which in turn uses docker support in the container-executor binary to launch/manage docker containers ( see
YARN-3852 ) .