How to run Docker inside Docker using Dockerfile
In some cases we want to run docker command inside docker container, we can do that by mapping docker.sock volume while running container. The other option is to use your Dockerfile.
1] Here is Dockerfile -
FROM ubuntu:18.04
#Install Docker
RUN apt-get update
RUN apt-get -y install apt-transport-https
RUN apt-get -y install ca-certificates
RUN apt-get -y install curl
RUN apt-get -y install gnupg2
RUN apt-get -y install software-properties-common
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | (OUT=$(apt-key add - 2>&1) || echo $OUT)
RUN add-apt-repository --yes "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
RUN apt-get update
RUN echo "deb http://security.ubuntu.com/ubuntu xenial-security main" >> /etc/apt/sources.list; apt-get update
RUN apt-get -y install build-essential
RUN apt-get -y install docker-ce docker-ce-cli containerd.io
CMD ["tail", "-f", "/dev/null"]
2] Build docker image.
# docker build -t docker-in-docker:latest .
3] Run docker container from above docker image.
# docker run -d --name dockerINdocker docker-in-docker:latest
4] Enter into docker container and confirm docker version as per below image.