Docker supports building and running software in components that can be easily distributed and managed. The platform also lends itself to development environments, where source control, build servers, build agents, and test agents can all be run in Docker containers from standard images.
Using Docker for development lets you consolidate many projects onto a single set of hardware while maintaining isolation. You could have services for Git and the image registry, running in highly available configurations in a Docker swarm, shared by many projects. Each project could have a dedicated build server configured with their own pipeline and their own build setup, running in a lightweight Docker container.
Setting up a new project in this environment is simply a case of creating a source control repository and a registry account and running new containers for the build process. These steps can all be automated, so project on-boarding...