Skip to content
💎Docker in Docker. The working solution
Shell Dockerfile
Branch: master
Clone or download

Latest commit

Latest commit 70e729e Dec 19, 2019


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Dec 19, 2019
scripts Docker In Docker container Nov 14, 2019
LICENSE Initial commit Nov 14, 2019

[English] [Русский]

Build Status Build Time Docker Pulls GitHub

💎 DinD

Docker in Docker. The working solution

GitHub repo:

DockerHub repo:

∵ Preface

Nowadays, containerised solutions are extremely widespread and Docker has firmly occupied the leader place among them. Often, the necessity to keep all the generated files and intermediary containers in one single place and clean the cache every time the parent container was stopped. To acheive this goal, developers used to manually or by scripting clean all the garbage with docker image purge -a and docker container purge. When you need to perform these operations quite often and especially when you need to clean up not everything, but only some images and containers linked with some other one, you might think about coming up with some scritable solution. But these home-made solutions often come with a gotcha -- they are error prone and accidentally you can delete conteiner wihci wsn't supposed to be deleted with all its data. To keep all the intermediary containers together and delete them at once, you can employ Docker-in-Docker (dind) solution.

📺 Video Guide

🚀 Quick Start

  1. Run dockerized Docker container:

    docker run --privileged -it \
    -p <hostPort-1>:<containerPort-1> \
    -p <hostPort-n>:<containerPort-n> \

    ℹ️ Note: Make sure to bind all ports your child containers might need.

  2. Run child container:

    docker run <docker-image>

    Your run container just like you do this on your host machine, some limitations may apply though (see note below)
    ℹ️ Note: Bind mounting directories isn't suported at the moment.

  3. Repeat step 2 as many times as you need.

You can’t perform that action at this time.