The docker:dind image is required because it actually starts up the docker daemon when it is brought up by a runner. The docker cli can exist on a host/container without having the daemon running and can be pointed to control a daemon running somewhere else. I believe you could technically use the… Answer from tmos22 on forum.gitlab.com
🌐
Docker Hub
hub.docker.com › _ › docker
docker - Official Image | Docker Hub
Where to get help: the Docker Community Slack⁠, Server Fault⁠, Unix & Linux⁠, or Stack Overflow⁠ · (See "What's the difference between 'Shared' and 'Simple' tags?" in the FAQ⁠.) 29.8.1-cli, 29.8-cli, 29-cli, cli, 29.8.1-cli-alpine3.24⁠ · 29.8.1-dind, 29.8-dind, 29-dind, dind, 29.8.1-dind-alpine3.24, 29.8.1, 29.8, 29, latest, 29.8.1-alpine3.24⁠
🌐
Docker
docker.com › docker-in-docker: containerized ci workflows | docker
Docker-in-Docker: Containerized CI Workflows | Docker
June 5, 2026 - Docker-in-Docker (DinD) is a technique to run Docker containers inside another Docker container. DinD makes it easy to create an isolated environment for each application or service under test in a CI platform.
Discussions

Why `services: docker:dind` is needed while already having `image: docker`?
Hello everybody, If I want to use ... why I need to have for that job also the following service config? build_job: image: docker:latest services: - docker:dind I was thinking that since the job will be ran inside th...... More on forum.gitlab.com
🌐 forum.gitlab.com
6
0
October 3, 2020
Should both "image" and "services" be dind or not?
Service should be docker-dind. The image used for job should not. Both images may be almost the same, just with different entrypoints so non-dind image won’t work as a docker service. Even if a runner runs on a docker, you won’t have access to this service for security reasons. That’s why you need to run dind on top of it. More on reddit.com
🌐 r/gitlab
1
1
August 28, 2024
Any specific security concerns when running Docker in Docker
One alternative is to use something like Kaniko. More on reddit.com
🌐 r/docker
3
0
January 7, 2024
GitLab is The DevSecOps Platform
GitLab is the DevSecOps platform. Software. Faster. More on reddit.com
🌐 r/gitlab
October 20, 2025
🌐
Medium
medium.com › @priyamsanodiya340 › docker-inside-docker-dind-a-devops-power-move-33145860b4f9
Docker Inside Docker (DinD): A DevOps Power Move | by Priyam Sanodiya | Medium
February 20, 2025 - Docker Inside Docker (DinD): A DevOps Power Move In modern DevOps workflows, running Docker inside a Docker container — commonly known as Docker Inside Docker (DinD) — has become a powerful …
🌐
GitHub
github.com › jpetazzo › dind
GitHub - jpetazzo/dind: Docker in Docker · GitHub
May 23, 2019 - docker run --privileged -d -e DOCKER_DAEMON_ARGS="-D" dind
Author: jpetazzo
🌐
Drone
docs.drone.io › pipeline › docker › examples › services › docker_dind
Docker (dind) | Drone
--- kind: pipeline name: default steps: - name: test image: docker:dind volumes: - name: dockersock path: /var/run commands: - sleep 5 # give docker enough time to start - docker ps -a services: - name: docker image: docker:dind privileged: true volumes: - name: dockersock path: /var/run volumes: - name: dockersock temp: {}
🌐
Buildkite
buildkite.com › pipelines › agent › self-hosted agents › run on kubernetes › build container images › docker-in-docker (dind)
Docker-in-Docker (DinD) container builds | Buildkite Documentation
Docker-in-Docker (DinD) allows you to run a Docker daemon inside a container, enabling standard Docker commands like docker build and docker run within a job.
🌐
Medium
gopesh3652.medium.com › running-docker-in-docker-dind-a-comprehensive-guide-1fe2e328020
Running Docker in Docker (DinD): A Comprehensive Guide | by Gopeshkhandelwal | Medium
August 9, 2023 - Now that you have the DinD image, you can spin up a container. Run the following command: docker run --privileged --name dind-container -d docker:20.10-dind
Find elsewhere
🌐
Medium
harsh05.medium.com › docker-in-docker-dind-a-comprehensive-guide-ca242639eb99
Docker-in-Docker (DinD): A Comprehensive Guide | by @Harsh | Medium
December 21, 2023 - Docker-in-Docker (DinD) is a powerful concept that allows running Docker containers inside other Docker containers. This practice is particularly useful for scenarios where nested containerization is required, such as in CI/CD pipelines or when ...
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
Why `services: docker:dind` is needed while already having `image: docker`? - GitLab CI/CD - GitLab Forum
October 3, 2020 - Hello everybody, If I want to use the docker commands in a job (for example for building an image or pushing to a registry), I understood that within the image: part of the job I have to have an image in which the docker command is available… So let’s simply have: build_job: image: docker:latest But then, why I need to have for that job also the following service config? build_job: image: docker:latest services: - docker:dind I was thinking that since the job will be ran inside th...
🌐
GitHub
github.com › meyayl › docker-dind
GitHub - meyayl/docker-dind: docker in docker + docker-compose · GitHub
services: docker-dind: image: meyay/docker-dind:20.10.7 container_name: docker-dind privileged: true restart: always networks: macvlan0: ipv4_address: 192.168.200.17 ipc: host environment: TZ: Europe/Berlin volumes: - /volume1/docker/dind/root-data:/var/lib/docker:shared - /volume1/docker/dind/data:/data:shared networks: macvlan0: driver: macvlan driver_opts: parent: ovs_eth0 ipam: config: - subnet: 192.168.200.0/24 gateway: 192.168.200.1 ip_range: 192.168.200.17/32
Author: meyayl
🌐
OneUptime
oneuptime.com › home › blog › how to run docker inside docker (dind) safely
How to Run Docker Inside Docker (DinD) Safely
January 16, 2026 - services: dind: image: docker:dind privileged: true environment: - DOCKER_TLS_CERTDIR=/certs volumes: - docker-certs-ca:/certs/ca - docker-certs-client:/certs/client - dind-storage:/var/lib/docker docker-client: image: docker:latest environment: - DOCKER_HOST=tcp://dind:2376 - DOCKER_TLS_VERIFY=1 - DOCKER_CERT_PATH=/certs/client volumes: - docker-certs-client:/certs/client:ro depends_on: - dind command: docker info volumes: docker-certs-ca: docker-certs-client: dind-storage:
🌐
Medium
adil.medium.com › the-magic-behind-docker-in-docker-dind-3cdb97dacc55
The Magic Behind Docker-in-Docker (DinD) | by adil | Medium
January 4, 2026 - We will run the CI job (run-tests123) inside a special container (docker:dind), which allows you to run another Docker container on the host machine.
🌐
Medium
srivastavayushmaan1347.medium.com › setting-up-docker-inside-docker-dind-a-comprehensive-guide-0b8f6029f3d0
Setting Up Docker Inside Docker (DIND): A Comprehensive Guide | by Ayushmaan Srivastav | Medium
October 5, 2024 - It’s particularly useful in continuous integration (CI) environments, where containerized builds need to run Docker commands, such as in Jenkins, GitLab CI, or CircleCI. Isolated Environments: It allows testing, building, and running containers in completely isolated environments. CI/CD Pipelines: DIND is widely used in CI/CD tools to execute Docker commands during builds.
🌐
Medium
engineering.sada.com › generally-not-recommended-docker-in-docker-in-docker-6fe4d7edae95
Generally not recommended: Docker in Docker in Docker…
May 25, 2022 - ❯ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d509c72b66d2 docker:dind "dockerd-entrypoint.…" 6 minutes ago Up 6 minutes 2375-2376/tcp strange_kalam
🌐
Caktusgroup
caktusgroup.com › blog › 2020 › 02 › 25 › docker-image
How to Use the "docker" Docker Image to Run Your Own Docker daemon | Caktus Group
There exists on Docker hub a Docker image called docker. It also has two flavors, "stable" and a "dind" (Docker-in-Docker).
🌐
Nestybox Blog Site
blog.nestybox.com › 2019 › 09 › 14 › dind.html
Secure Docker-in-Docker with System Containers | Nestybox Blog Site
September 14, 2019 - I will then describe how Nestybox system containers offer an alternative option that overcomes the shortcomings of these other options. In the DinD approach, the Docker daemon runs inside a container and any (child) containers it creates exist inside said container (i.e., child containers are ...
🌐
Harness Developer Hub
developer.harness.io › continuous integration › use harness ci › manage dependencies › run docker-in-docker in a build stage
Run Docker-in-Docker in a Build stage | Harness Developer Hub
For example, if you want to build images from two separate codebases in the same pipeline: One with a Build and Push to Docker step and another with Docker commands in a Run step. To configure DinD in Harness CI, you need to add a DinD Background step and a Run step that runs Docker commands to your pipeline.
🌐
Medium
medium.com › @firozkaif27 › docker-inside-docker-dind-a-guide-to-setting-it-up-8ad8fb6d67cc
Docker Inside Docker (DIND): A Guide to Setting It Up 🚀🐳 | by Md Sayeed Firoz | Medium
October 13, 2024 - This approach shares the Docker daemon from your host with the container, enabling the container to run Docker commands without the need for a fully privileged DIND setup.
🌐
Medium
medium.com › @sumittiwari44440 › setting-up-docker-inside-docker-dind-a-simple-guide-e0f3279f361b
Setting Up Docker Inside Docker (DIND): A Simple Guide | by Sumit Tiwari | Medium
October 8, 2024 - One interesting concept is Docker inside Docker (DIND), which allows you to run Docker containers within a Docker container. This can be beneficial for testing, CI/CD pipelines, and development environments.
🌐
GitHub
github.com › docker-library › docker › blob › master › Dockerfile-dind.template
docker/Dockerfile-dind.template at master · docker-library/docker
# https://github.com/docker/docker/tree/master/hack/dind · ENV DIND_COMMIT {{ .dindCommit }} · RUN set -eux; \ wget -O /usr/local/bin/dind "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind"; \ chmod +x /usr/local/bin/dind · · COPY dockerd-entrypoint.sh /usr/local/bin/ ·
Author: docker-library