@eekhss Sorry for the delay in answering your question. The reply thread in “Getting Started: Docker Engine” got out of hand.
There is currently no way to build an image at the level of circle.yml.
This is correct.
docker executor, a portion of your build is running inside a Docker container. That Docker container is a shared environment, but securely separated from other customer builds. This lets us provision your environment nearly instantly, but comes with the tradeoff that we can’t let you securely build in that environment.
machine executor, there is no shared environment at all. This comes with a startup/provision cost. You’re getting your own VM and full control of the Docker engine running inside of it.
The broad use case for the
docker executor with
setup-docker-engine is for customers with lightweight Docker needs. For instance, they mostly don’t interact with Docker in their test suites, and just need to build an image for deployment.
The use case for the
machine executor is for customers who would want to use more advanced Docker features, i.e. shared volumes.
Hope this helps shed some light on the two choices. We’re trying to make the onboarding experience better, so please reply if you have further questions!
@lucj I believe this is correct. The
machine executor connects to a remote VM that’s running Docker Engine.