First, we will describe the architecture of this solution. Expanding on the architecture that was put forward in previous chapters, we have a GitLab instance with a GitLab CI that receives a request from a GitLab Runner that's running a dedicated host. This can be either a local virtual machine or an instance in the cloud. The Runner is equipped with the Docker Machine program.
The Docker Machine executor type is basically a GitLab Runner that executes Docker Machine commands. With Docker Machine, you can create virtual hosts that run the Docker Engine. You can control these hosts with it and create new virtual machines with Docker Engine installed, which in turn can run GitLab Runner container instances. This is explained in the following diagram:
In the preceding diagram, you can see the Docker Machine component and that it can instantiate multiple...