Skip to content

도커 안에서 도커 사용하기

도커를 사용하다보면 모종의 목적으로 도커 컨테이너 안에서 도커를 사용할 일이 생길 수 있다. 이것을 Docker in Docker (DinD)라고 부르는데, 이를 위한 방법은 크게 2가지로 나뉜다.

  1. 호스트의 도커 데몬을 사용(마운트)하여 도커 컨테이너 내부에서 호스트의 도커 데몬을 사용하는 방법
  2. 도커 컨테이너 내부에서 ‘실제’ 도커를 사용하는 방법

1. 도커 컨테이너 내부에서 호스트의 도커 데몬을 사용하는 방법

이 방법은 도커 컨테이너 내부에서 도커를 사용할 때, 도커 컨테이너 내부의 도커가 아닌, 호스트의 도커 데몬을 사용해서 도커를 사용하는 방법이다.

도커 데몬에게 명령을 내릴 수 있는 인터페이스인 ‘docker.sock’ 파일을 마운트해서 실행하면 된다. 이렇게 설정해주면 도커 컨테이너 내부의 도커 데몬 명령어를 실행할 때 호스트의 docker.sock을 같이 사용하도록 한다.

Terminal window
-v /var/run/docker.sock:/var/run/docker.sock

도커 컨테이너 내부에서 실제 도커를 사용하는 방법

도커 컨테이너 내부에서 실제 도커를 사용하는 방법도 존재한다. 다음과 같이 수행하면 된다.

https://github.com/jpetazzo/dind?tab=readme-ov-file

Terminal window
docker run --privileged -d docker:dind