Понял.
Давайте сделаем шаг назад.Вы действительно хотите Docker-in-Docker?Или вы просто хотите иметь возможность запускать Docker (а именно: собирать, запускать, иногда отправлять контейнеры и образы) из вашей системы CI, в то время как сама эта система CI находится в контейнере?
Я собираюсьДержу пари, что большинство людей хотят последнее.Все, что вам нужно, - это решение, позволяющее вашей CI-системе, такой как Jenkins, запускать контейнеры.
И самый простой способ - просто открыть Docker-сокет для вашего CI-контейнера, подключив его с привязкой с флагом -v.
Проще говоря, когда вы запускаете свой контейнер CI (Jenkins или другой), вместо того, чтобы что-то взламывать вместе с Docker-in-Docker, запустите его с помощью:
docker run -v / var /run / docker.sock: /var/run/docker.sock
Теперь этот контейнер будет иметь доступ к сокету Docker и, следовательно, сможет запускать контейнеры.За исключением того, что вместо запуска «дочерних» контейнеров он запускает «одноуровневые» контейнеры.