DinD

도커 컨테이너 내부에서 도커를 실행하는 방식이다.

DooD

docker.sock은 클라이언트 데몬 간의 통신을 위한 엔드포인트를 말한다.

호스트 Docker 계층에서 실행하는 방식으로 docker.sock을 통해 데이터가 호스트 Docker로 전달된어 형제(sibling) 컨테이너로 구성되어진다.

docker run -it -p 8080:8080 --name <container_name> \\
  -v /var/run/docker.sock:/var/run/docker.sock \\
  -v <your worksspace> : /var/jenkins_home \\
  <image_name>:tag

여기서 핵심은 docker.sock Volume을 공유하는 것으로 컨테이너 내부에서도 저장된 Host 환경을 공유 할 수 있다는 점이다.

기본적으로 /var/run/docker.sock 파일을 통해 접근되는 IPC 소켓이지만, 도커는 네크워크 주소와 systemd 방식의 소켓으로 사용되는 TCP 소켓도 지원한다.

DinD vs DooD