Docker Hub 에서 기본으로 제공되는 Docker Container 에서는 Docker 데몬 서비스를 실행 할 수 없습니다.
대신 추가로 제공되는 DinD 버전을 이용하거나, Docker socker 을 공유하는 방법으로 컨테이너 내에서 컨테이너를 실행할 수 있습니다.
아래는 두가지 방법 중 Docker Socket 을 Host 와 공유하는 방법입니다.


원리는 다음과 같습니다.
Docker Container 에서도 Host에서의 Docker Daemon 에 접근하여 컨테이너를 생성하도록 합니다.
즉, 컨테이너 내부에서 또다른 컨테이너를 만드는 명령어를 실행하지만 실제로는 Host 에서 컨테이너를 생성하는 것입니다.

컨테이너를 생성할 때 '/var/run/docker.sock' 볼륨을 공유하도록 생성한 뒤, docker.io 를 설치하여 명령어를 실행하면 됩니다.
아래는 코드입니다.

docker run -ti -v /var/run/docker.sock:/var/run/docker.sock docker

실제로 컨테이너 생성 명령을 내리는 곳은 Host 라는 것을 명심하여야 합니다.
컨테이너 내부에서 띄운 컨테이너 목록을 마찬가지로 Host 에서도 확인할 수 있습니다.

출처 : https://itnext.io/docker-in-docker-521958d34efd

+ Recent posts