Do not use Docker-in-Docker?

The author of Docker-in-Docker advises against using dind for CI and suggests bind mounting the Docker socket.

Let’s take a step back here. Do you really want Docker-in-Docker? Or do you just want to be able to run Docker (specifically: build, run, sometimes push containers and images) from your CI system, while this CI system itself is in a container?

https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

That seems reasonable. However, the GitLab shared runners are not configured like this, but for running dind.

https://about.gitlab.com/gitlab-com/settings/#shared-runners

Is there any effort underway to head down this path or is there a significant reason why the shared runners can’t make use of this solution?

Since it’s a shared runner, you might run to issues with conflict container names with other project CI job. Also, there will be security issue like you gain access to other project running ci container by docker ps and docker exec -it.