{"id":21879099,"url":"https://github.com/alekslitvinenk/dind","last_synced_at":"2025-04-15T03:11:14.914Z","repository":{"id":44722190,"uuid":"221784973","full_name":"alekslitvinenk/dind","owner":"alekslitvinenk","description":"💎Docker in Docker. The working solution","archived":false,"fork":false,"pushed_at":"2019-12-19T21:55:43.000Z","size":24,"stargazers_count":41,"open_issues_count":2,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T14:51:11.521Z","etag":null,"topics":["containerization","docker","docker-in-docker","intermediary-containers","seamless"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alekslitvinenk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"alekslitvinenk"}},"created_at":"2019-11-14T20:53:19.000Z","updated_at":"2024-11-20T17:14:42.000Z","dependencies_parsed_at":"2022-07-16T16:30:28.681Z","dependency_job_id":null,"html_url":"https://github.com/alekslitvinenk/dind","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekslitvinenk%2Fdind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekslitvinenk%2Fdind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekslitvinenk%2Fdind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alekslitvinenk%2Fdind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alekslitvinenk","download_url":"https://codeload.github.com/alekslitvinenk/dind/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248997079,"owners_count":21195799,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["containerization","docker","docker-in-docker","intermediary-containers","seamless"],"created_at":"2024-11-28T08:15:04.437Z","updated_at":"2025-04-15T03:11:14.898Z","avatar_url":"https://github.com/alekslitvinenk.png","language":"Shell","funding_links":["https://github.com/sponsors/alekslitvinenk"],"categories":[],"sub_categories":[],"readme":"\u003cp align=center\u003e\u003cimg src=\"https://alekslitvinenk.github.io/dind/DinD-NewLogo.png\"\u003e\u003c/p\u003e\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/alekslitvinenk/dind/blob/master/README.md\"\u003e[English]\u003c/a\u003e\n\u003ca href=\"https://github.com/alekslitvinenk/dind/blob/master/docs/README_RU.md\"\u003e[Русский]\u003c/a\u003e\n\u003cbr\u003e\n\n![Build Status](http://cicd.dockovpn.io/build/dind)\n![Build Time](http://cicd.dockovpn.io/built/dind)\n[![Docker Pulls](https://img.shields.io/docker/pulls/alekslitvinenk/dind.svg)](https://hub.docker.com/r/alekslitvinenk/dind/)\n![GitHub](https://img.shields.io/github/license/alekslitvinenk/dind)\n\n# 💎 DinD\nDocker in Docker. The working solution\n\n### GitHub repo:\nhttps://github.com/alekslitvinenk/dind\n### DockerHub repo:\nhttps://hub.docker.com/r/alekslitvinenk/dind\n\n## ∵ Preface\nNowadays, 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.\n\n## 📺 Video Guide\n\u003cp align=center\u003e\u003ca href=\"https://youtu.be/s8AK55jjUjQ\"\u003e\u003cimg src=\"https://alekslitvinenk.github.io/docker-openvpn/assets/img/video-cover-play.png\"\u003e\u003c/a\u003e\u003c/p\u003e\u003cbr\u003e\n\n## 🚀 Quick Start\n1. Run dockerized Docker container:\n    ```bash\n    docker run --privileged -it \\\n    -p \u003chostPort-1\u003e:\u003ccontainerPort-1\u003e \\\n    ...\n    -p \u003chostPort-n\u003e:\u003ccontainerPort-n\u003e \\\n    alekslitvinenk/dind\n    ```\n    ℹ️ **Note:** Make sure to bind all ports your child containers might need.\n\n2. Run child container:\n    ```bash\n    docker run \u003cdocker-image\u003e\n    ```\n    Your run container just like you do this on your host machine, some limitations may apply though (see note below)\u003cbr\u003e\n    ℹ️ **Note:** Bind mounting directories isn't suported at the moment.\n  \n 3. Repeat **step 2** as many times as you need.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falekslitvinenk%2Fdind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falekslitvinenk%2Fdind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falekslitvinenk%2Fdind/lists"}