Если вы действительно хотите запустить контейнер Docker внутри другого контейнера Docker, вам следует использовать уже существующие изображения, предоставленные Docker (https://hub.docker.com/_/docker) вместо создания собственного базового изображения: выберите изображения, помеченные как dind
( d ocker in d ocker) или <docker_version>-dind
(например, 18.09.0-dind
). Если вы хотите запустить свой собственный образ (не рекомендуется), дона не забудьте запустить его с опцией --privileged
(вот почему вы получаете ошибку).
Пример с docker
официальными изображениями:
# run Docker container running Docker daemon
docker run --privileged --name some-docker -d docker:18.09.0-dind
# run hello-world Docker image inside the Docker container previously started
docker exec -i -t some-docker docker run hello-world
Тем не менее, я согласен с комментарием @DavidMaze и ссылочным постом в блоге, на который он ссылался ( Не используйте Docker-in-Docker для CI ): Docker-in-Docker следует избегать в максимально возможной степени .