Current, the Docker subprocess launcher (introduced in #121) uses the same function as the base subprocess launcher. Whether to launch a subprocess.Popen or Docker Container is handled by branching logic. It is possible that a single app may want to use Docker for some subprocesses and the local shell for other subprocesses, these functions should be separate. It would also help with readability.