https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXLxyZ%2FbtroVr1OTaR%2F27VHLse6YwjcoEZ4vFqqj1%2Fimg.png
도커 컨테이너 내부에서 도커를 실행하는 방식이다.
-privilige
)에서 실행되어야 하기 때문에 DooD
방법보다 안전하지 않다./var/lib/docker
디렉토리를 위해 볼륨을 사용하는데 컨테이너를 제거할 경우 같이 제거하지 않으면 빠르게 사용 가능한 디스크 공간이 줄어들 수 있다.docker.sock은 클라이언트 데몬 간의 통신을 위한 엔드포인트를 말한다.
https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkG4Ee%2Fbtro6axPOc6%2FuO8iaewJXKDifLnx0y1Oxk%2Fimg.png
호스트 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 소켓도 지원한다.