Docker-in-Docker แแ แแก แแแ แขแฃแแแฃแ แ Docker แแแแแแฃแ แ แแแ แแแ, แ แแแแแแช แแฃแจแแแแก แแแแขแแแแแ แจแ แแแแขแแแแแ แแก แกแฃแ แแแแแแก แจแแกแแฅแแแแแแ. Docker-in-Docker-แแก แจแแฅแแแแก แแแแแแ แ แแแแแแ แแงแ แแแแแ Docker-แแก แแแแแแแแ แแแแจแ แแแฎแแแ แแแ. แแแแ แ แแแแแแแแ แแงแแแแแก แแแก Jenkins CI-แแก แแแกแแจแแแแแ. แแก แแแแแแแ แแแ แแแแฃแ แ แฉแแแก, แแแแ แแ แจแแแแแ แฌแแ แแแแฅแแแแแ แแ แแแแแแแแ, แ แแแแแแ แแแแแแแ แแชแแแแแ แจแแกแแซแแแแแแแ Docker-แแก แแแงแแแแแแ Jenkins CI แแแแขแแแแแ แจแ. แแก แกแขแแขแแ แแแขแงแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแแแ แแก. แแฃ แแแแแขแแ แแกแแแ แกแแแแแแ แแแแแฌแงแแแขแ แแแขแแแแแแก แแแ แแจแ, แฃแแ แแแแ แฌแแแแแแฎแแ แกแขแแขแแแก แแแแ แแแฌแแแ, โแแ แแแแแแแก แแแแแญแ แโ.
Docker-in-Docker: "แแแ แแ"
แแ แฌแแแแ แแแขแ แฎแแแก แฌแแ แฉแแแแแแ แ Docker-แจแ
- hackity hack;
- แแจแแแแแ;
- แแแจแแแแฃแแ Docker แแแแแแแก แจแแฉแแ แแแ;
- แแฎแแแ Docker แแแแแแแก แแแจแแแแ;
- แขแแกแขแแ แแแ;
- แแแแแแแ แแ แชแแแแ.
แแฃ แแแแแแแแ แแแแแแ, แ แแแ แแแฃแชแแ แแแแแ แแกแแแแแแแก แแแแแแแแ (แแแฃ แแแแขแแแแแ แจแ), แแแจแแ แแก แฃแคแ แ แ แแฃแแ แแแฎแแ:
- hackity hack;
- แแแ แฌแแฃแแแแ, แ แแ แแฃแจแแแแก Docker-แแก แกแแแฃแจแแ แแแ แกแแ;
- แจแแฅแแแแแ แแฎแแแ แแแแแ แ แซแแแแ แแแแแ แแ;
- แจแแแฉแแ แ แแแแแ แแก แแแแแแ;
- แแแแฌแงแแ แแฎแแแ Docker แแแแแแ;
- แขแแกแขแ;
- แจแแแฉแแ แ แแฎแแแ แแแแแ แแก แแแแแแ;
- แแแแแแแ แแ.
Docker-in-Docker-แแก แแแกแแแแกแแแ แแ แแแ, แแ แแชแแกแ แฃแคแ แ แแแ แขแแแ แแแฎแแ:
- hackity hack;
- แจแแแ แแแ + แแแจแแแแ แแ แ แแขแแแแ;
- แแแแแแแ แแ แชแแแแ.
แแกแ แแ แฏแแแแ?
Docker-in-Docker: "แชแฃแแ"
แแฃแแชแ, แแแแฃแแแ แฃแแ แ แฌแแแแแก แกแแฌแแแแแฆแแแแแแ, Docker-in-Docker แแ แแ แแก 100% แแแ แกแแแแแแแแ, แแแแแแแ แแ unicorns. แแ แแแฃแแแกแฎแแแ แแ แแก แแก, แ แแ แแ แแก แ แแแแแแแแ แกแแแแแฎแ, แ แแแแแแช แแแแแแแแแ แแ แฃแแแ แแชแแแแก.
แแ แ-แแ แแ แแแแแแแ แแฎแแแ LSM-แแแก (Linux-แแก แฃแกแแคแ แแฎแแแแแก แแแแฃแแแแก), แ แแแแ แแชแแ AppArmor แแ SELinux: แแแแขแแแแแ แแก แแแจแแแแแกแแก, โแจแแแ แแแแแ แแโ แจแแแซแแแแ แจแแแชแแแแก แแแแแแงแแแแก แฃแกแแคแ แแฎแแแแแก แแ แแคแแแแแ, แ แแแแแแแช แแแแคแแแฅแขแจแ แแแฐแงแแแแ แแ แแฆแ แแแก โแแแ แ แแแแแ แกโ. แแก แแ แแก แงแแแแแแ แ แแฃแแ แแแแแกแแญแ แแแ แแ แแแแแแ, แ แแแแกแแช แแชแแแแแแ แจแแแแแ แแแ แแ แแแแแแแฃแ แ แแ แแแแแแแแ แแแฃแแ แแ แแจแ. แฉแแแแ แชแแแแแแแแแแ แแแฃแจแแแ แแ แงแแแแ แขแแกแขแ แแแแแแแแ แฉแแแก Debian แแแแฅแแแแก แแ Ubuntu-แก แขแแกแขแแ แแแฃแ VM-แแแก, แแแแ แแ แแกแแแ แแแแ แแแแแแแแแ แแ แแแแฌแแแแแแแแ แแแแแ แแ แแกแแแก แแแแ แแขแแ (แแแก แฐแงแแแแ Fedora, แ แแแแ แช แแแฎแกแแแก). แแ แแ แแแฎแกแแแก แแ แแแแแแแก แแฃแกแขแ แแแแแแ, แแแแ แแ แจแแแซแแแแ แแแแขแแ, แ แแ แแแแแ แแ แซแแแ แแแญแแ, แ แแแแแแช แแฃแจแแแแก SELINUX=enforce-แแ (แแแแแแแงแแแ AppArmor) แแ แฉแแแ แชแแแแแแแแแ แแ แแแแแแแกแฌแแแแแแ SELinux-แแก แแ แแคแแแแแก.
Docker-in-Docker: "แแแ แแขแ"
แแแแ แ แแ แแแแแแ แแฎแแแ Docker แจแแแแฎแแแก แแ แแแแแ แแแก. Docker-in-Docker-แแก แแแจแแแแแกแแก, แแแ แ Docker แแฃแจแแแแก แฉแแแฃแแแแ แแแ แคแแแแฃแ แ แกแแกแขแแแแก แแแแแ (EXT4, BTRFS, แแ แ แแช แแแฅแแ) แแ แจแแแ Docker แแฃแจแแแแก แแกแแ-แฉแแฌแแ แแก แกแแกแขแแแแก แแแแแ (AUFS, BTRFS, Device Mapper). แแ แ.แจ.). , แแแแกแแ แแแฎแแแแแ, แแฃ แ แ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ แแแ แ แแแแแ แแก แแแแแกแแงแแแแแแแ). แแก แฅแแแแก แแแแ แแแแแแแแชแแแก, แ แแแแแแช แแ แแแฃแจแแแแแก. แแแแแแแแแ, แแฅแแแ แแแ แจแแซแแแแ AUFS-แแก แแแจแแแแแก AUFS-แแก แแแแแ.
แแฃ BTRFS-แก แแฌแแ แแแแแ BTRFS-แแก แแแแแ, แแแ แแแแแแแ แฃแแแ แแแฃแจแแแก, แแแแ แแ แแแก แจแแแแแ แ แแช แแฅแแแแ แฉแแแแแฃแแ แฅแแแขแแแแแ, แแจแแแแแ แฅแแแขแแแแก แฌแแจแแ แแแ แแแฎแแ แฎแแแแ. Device Mapper แแแแฃแแก แแ แแฅแแก แกแแฎแแแแ แกแแแ แชแ, แแกแ แ แแ, แแฃ Docker-แแก แ แแแแแแแแ แแแกแขแแแชแแ แแแฃแจแแแแแก แแแก แแ แ แแแแฅแแแแแ, แแกแแแ แงแแแแ แจแแซแแแแแ แแแฎแแ (แแ แแแแแแแ แแแแฎแแแแแ) แกแฃแ แแแแแแ แแ แแแแแแแแ แแ แแแแขแแแแแ แแก แกแแ แแแแ แแ แแแฌแงแแแแแแแแแแ. แฒแก แแ แแก แชแฃแแ.
แแ แกแแแแแก แแแแแกแแแแแ แแ แแแแแ แแ แแ แแแแแแแก แแแแแกแแญแ แแแแ. แแแแแแแแแ, แแฃ แแกแฃแ แ แแแแแแงแแแแ AUFS แจแแแ Docker-แจแ, แฃแแ แแแแ แแแแแแฅแชแแแ /var/lib/docker แกแแฅแแฆแแแแ แขแแแแ แแ แแแ แแแ แแฅแแแแแ. Docker-แแ แแแแแแขแ แ แแแแแแแแ แกแแแแแแกแ แกแแฎแแแแแแก แกแแแ แชแ Device Mapper-แแก แกแแแแแแ แกแแฎแแแแแจแ, แ แแแ แแฃ Docker-แแก แ แแแแแแแแ แแแ แ แแ แแกแ แแ แแแแแ แแแฌแงแแแแแแแแแ แแฃแจแแแแก, แแกแแแ แแ แแแแแแแก แแ แแแแแแฏแแแแ.
แแฃแแชแ, แแกแแแ แแแงแแแแแ แกแฃแแแช แแ แแ แแก แแแ แขแแแ, แ แแแแ แช แแฅแแแแ แฉแแแก
Docker-in-Docker: แแก แฃแแ แแกแแแแ
แ แแช แจแแแฎแแแ build cache-แก? แแก แแกแแแ แจแแแซแแแแ แกแแแแแแ แ แแฃแแ แแงแแก. แแแแแแแแแแ แฎแจแแ แแ แแแแแแฎแแแแแ: โแแฃ แแ แแแงแแแแ Docker-in-Docker-แก, แ แแแแ แจแแแแซแแแ แแแแแแแงแแแ แกแฃแ แแแแแ, แ แแแแแแแช แแแแแแแกแแแฃแแแ แฉแแแก แฐแแกแขแแ, แแแแก แแแชแแแแ, แ แแ แงแแแแแคแแ แ แฃแแแ แแแแแฎแแ แฉแแแก แจแแแ Docker-แจแโ?
แแแแแแ แแ แแแฌแแ แแ แชแแแแแแแ /var/lib/docker-แแก แแแแแ แแแกแแแแซแแแแแ Docker-in-Docker แแแแขแแแแแ แแแ. แแแแฏแแ แแกแแแ แแแแแ แแแแ /var/lib/docker-แก แแ แแแแ แแแแขแแแแแ แแแ.
แแกแฃแ แ แแฅแแแแ แแแแแชแแแแแแก แแแ แฃแแแแ แแแ? แ แแแแแ แแก แแ แแก แแฃแกแขแแ แแก, แ แแช แแแแแแแแแแก แแฅแแแแก แแแแแชแแแแแก!
Docker แแแแแแ แแจแแแ แแ แจแแแฅแแแ แแแแกแแแแแก, แ แแ แฐแฅแแแแแก แแฅแกแแแฃแแแฃแ แ แฌแแแแแ /var/lib/docker-แแ. แกแฎแแ แแ แแคแแ แ แแ แฃแแแ โแจแแแฎแแก, แแแแ แขแงแแก แแ แแฌแแ แแแแกโ Docker แคแแแแ, แ แแแแแแช แแแแแแ แแแแก แแ แกแแฅแแฆแแแแแจแ.
แ แแขแแ แแ แแก แแก แแกแ? แ แแแแแ แแก แแ แแก แแ แ-แแ แแ แงแแแแแแ แ แแฃแแ แแแแแแแแแแก แจแแแแแ, แ แแแแแแช แแแกแฌแแแแแ dotCloud-แแก แจแแแฃแจแแแแแแกแแก. dotCloud แแแแขแแแแแ แแก แซแ แแแ แแฃแจแแแแแ แ แแแแแแแแ แแ แแชแแกแแก แฌแแแแแแ /var/lib/dotcloud แแ แแแ แแฃแแแ. แแแแแแ แฃแแ แฎแ แแแแแ, แ แแแแ แแชแแ แแขแแแฃแ แ แคแแแแแก แฉแแแแชแแแแแ (แแแแแแแแ แแแ แ แแแแฅแขแแ แแแแก แแแชแแแแ), แแแแแก แแแ แแคแ แกแแแแแกแฃแแขแแชแแ แแ แกแแแแแแแแฃแแ แกแแแแขแแแแ แแ แกแฎแแ แแฅแกแแแ แแแแแขแแแ แฃแกแแคแ แแฎแ แกแแกแขแแแแแแ, แ แแแแ แแชแแ SQLite แแ BDB, แงแแแแแแแแก แแ แแฃแจแแแแแ. แ แแแแกแแช แฉแแแ แแแแแแแแแแ แแแแขแแแแแ แแก แซแ แแแแก แฎแแแแฎแแ แแแแแแแก, แ แแแแแแช แกแแแแแแแ แแแฎแแ Docker, แแ แ-แแ แแ แแแแ แแแแแแแแก แแแแแฌแงแแแขแแแแแ แแงแ แแแแขแแแแแ แแก แงแแแแ แแแแ แแชแแแแแก แแแแ แแแแแแแ แแ แแ แแแแแแแก แฅแแแจ, แ แแแ แแแแแแแ แแแแชแแแแ แงแแแแ แแแแแฃแ แแแขแฃแแ แกแแกแฃแแแแ.
แแ แแกแฌแแ แแ แแ แแแแแแแ: แกแแแกแแแแ แจแแกแแซแแแแแแแ แ แแแแ แแแ แแ, แกแแแแแแ แแ แกแฌแ แแคแ แแแแแแแแแ, แ แแแแแแช แแแแชแแแก แแ แแแแ แแ แแชแแกแก แแ แแแแแแแแ แแแ แแแ แแแแแฃแ แแแแขแ แแแก. แแแแ แแ แฉแแแ แแคแแฅแ แแแ, แ แแ แฃแคแ แ แแแ แขแแแ แแ แแแแแแแ แแแแแก แแแฌแแ แ แแ แจแแแแ แฉแฃแแแแ Docker-แแก, แ แแแแ แช แแ แแแแแ แแ แแแแแแแจแแก แแแแแงแแแแแแ.
แแก แแแจแแแแก, แ แแ แแฃ แแฅแแแ แแแแแ แแแ /var/lib/docker แแแ แแฅแขแแ แแแก แ แแแแแแแแ Docker แแแกแขแแแชแแแก แจแแ แแก, แแ แแแแแแแแ แจแแแแฅแแแแแแ. แ แ แแฅแแ แฃแแแ, แแแแ แจแแแซแแแแ แแแฃแจแแแก, แแแแกแแแฃแแ แแแแ แขแแกแขแแ แแแแก แแแ แแฃแ แแขแแแแแแ. โแแแกแแแแ, แแแแ, แแ แจแแแแซแแแ แแแแฃแจแแ ubuntu, แ แแแแ แช แแแแแ แ!โ แแแแ แแ แกแชแแแแ แ แแฆแแช แฃแคแ แ แ แแฃแแ, แ แแแแ แแชแแ แแ แแ แแ แแแแแ แกแฃแ แแแแก แแแแฆแแแ แแ แ แแแแกแฎแแแแแแฃแแ แแแกแขแแแชแแแแแ แแ แแแแแแฎแแแ, แ แแ แกแแแงแแ แ แแฌแแแก.
แแก แแแจแแแแก, แ แแ แแฃ แแฅแแแแ CI แกแแกแขแแแ แแฎแแ แชแแแแแแก build-แแแก แแ แแฆแแแแแแก, แงแแแแ แฏแแ แแ, แ แแแแกแแช แแฅแแแ แแแแแขแแแ แแแแ แแฅแแแแก Docker-in-Docker แแแแขแแแแแ แก, แแฅแแแ แ แแกแแแแ แแแ แแแฃแแ แแแ แแฆแแก แแแก แฅแแจแ แฉแแแแแแแก. แแก แกแฃแแแช แแ แแ แแก แแแแแ แ!
แแแแแฌแงแแแขแ
แแแแแ แแแแแแแแแ แแแแแฏแ แฃแแแ. แแแแแแแแแ แแญแแ แแแแแ Docker-in-Docker แแ แฃแแ แแแแ แแกแฃแ แ แจแแซแแแ Docker-แแก แแแจแแแแ แแ แแฅแแแแ CI แกแแกแขแแแแแแ แแแแขแแแแแ แแแแก แแ แกแฃแ แแแแแแก แแจแแแแแ แแ แแแจแแแแ แแแจแแ, แ แแชแ แแก CI แกแแกแขแแแ แแแแแ แแ แแก แแแแขแแแแแ แจแ?
แแแแแแก, แ แแ แแแแแแแแแแแก แฃแแแขแแกแแแแก แกแฃแ แก แแก แฃแแแแแกแแแแแ แแแ แแแแขแ, แ แแช แแแแก แแแจแแแแก, แ แแ แแแ แกแฃแ แ CI แกแแกแขแแแ, แ แแแแ แแชแแ แฏแแแแแแกแ, แ แแ แจแแซแแแก แแแแขแแแแแ แแแแก แแแจแแแแ. แแ แแแแก แแแแแแแแแก แฃแแแ แขแแแแกแ แแแแ แฃแแ แแแแ แฉแแกแแแ Docker แกแแแแขแ แแฅแแแแก CI แแแแขแแแแแ แจแ แแ แแแแแแแจแแ แแ แแแ -v แแ แแจแแกแแแ.
แแแ แขแแแแ แ แแ แแแฅแแแ, แ แแแแกแแช แแฅแแแ แแแ แแแแ แแฅแแแแก CI แแแแขแแแแแ แก (แฏแแแแแแกแ แแ แกแฎแแ), แแแแก แแแชแแแแ, แ แแ แ แแฆแแช แแแขแแฎแแ Docker-in-Docker-แแแ แแ แแแ, แแแแฌแงแแ แแแ แฎแแแแ:
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
แแ แแแแขแแแแแ แก แแฎแแ แแฅแแแแ แฌแแแแแ Docker แกแแแแขแแ แแ, แจแแกแแแแแแกแแ, แจแแซแแแแก แแแแขแแแแแ แแแแก แแแจแแแแแก. แแแ แแ แแแแกแ, แ แแ โแแแแจแแแกโ แแแแขแแแแแ แแแแก แแแจแแแแแก แแแชแแแแ, แแก โแแ-แซแแแกโ แแแแขแแแแแ แแแก แแแฃแจแแแแก.
แกแชแแแแ แแก แแแแแ แแก แแคแแชแแแแฃแ แ แกแฃแ แแแแก แแแแแงแแแแแแ (แ แแแแแแช แจแแแชแแแก Docker แแ แแแแแแแแก):
docker run -v /var/run/docker.sock:/var/run/docker.sock
-ti docker
แแก แแแแแแงแฃแ แแแ แแ แแฃแจแแแแก Docker-in-Docker-แแก แแกแแแแกแแ, แแแแ แแ แแก แแ แแ แแก Docker-in-Docker: แ แแแแกแแช แแก แแแแขแแแแแ แ แฅแแแแก แแแแแขแแแแ แแแแขแแแแแ แแแก, แแกแแแ แจแแแฅแแแแแ แแแแ แแแแแก Docker-แจแ. แแฅแแแ แแ แแแแแชแแแ แแฃแแแแแก แแแแ แแแ แแคแแฅแขแแแก แแ แแกแแแแแแแก แฅแแจแ แแแแแแ แแแฃแแ แแฅแแแแ แแ แแแแ แแแ แแ.
แจแแแแจแแแ: แแ แกแขแแขแแแก แฌแแแ แแแ แกแแแแจแ แ แแแแแแแแแแฃแแแ Docker แแ แแแแแ แฐแแกแขแแแแ แแแแขแแแแแ แแแ แแแแแแจแแ แแแ. แแก แฃแแแ แแ แแกแแแแ แแแฎแแ, แ แแแแแ Docker แซแ แแแ แแฆแแ แคแแ แแแก แกแขแแขแแแฃแ แ แแ แแแแฅแแแก แกแขแแขแแแฃแ แ แแแแแแแแแแแแก.
แแกแ แ แแ, แแฃ แแกแฃแ แ แแแแแแงแแแแ Docker Jenkins CI-แแแ, แแแฅแแ 2 แแแ แแแแขแ:
Docker CLI-แแก แแแงแแแแแ แกแฃแ แแแแแแก แจแแคแฃแแแแก แซแแ แแแแแ แกแแกแขแแแแก แแแแแงแแแแแแ (แแแฃ, แแฃ แแฅแแแแ แกแฃแ แแแ แแแคแฃแซแแแแฃแแแ Debian-แแ, แแแแแแงแแแแ .deb แแแแแขแแแ), Docker API-แก แแแแแงแแแแแแ.
แ แแแแแแแแ แ แแแแแแ ๐
แแแแแแแแ, แ แแ แแแ แฉแแ แฉแแแแแแ. แแแแฌแแแ แฉแแแแ แกแขแแขแแแแ? แแกแฃแ แ แแแฎแแ แฃแคแ แ แกแแแแขแแ แแกแ แจแแแแแ แกแ? แแฎแแ แ แแแแแแญแแ แแ แจแแแแแแแก แแแแแแแกแแแแ แแ แแแแแแ แแแแกแแแแก แ แแแแแแแแแชแแแ,
Dell R730xd 2-แฏแแ แแแคแแ Equinix Tier IV แแแแแชแแแแ แชแแแขแ แจแ แแแกแขแแ แแแแจแ? แฒแฎแแแแ แแฅ
แฌแงแแ แ: www.habr.com