Post

도커 dood vs dind

도커 dood vs dind

DooD란?

  • DooD는 Docker Out Of Docker의 약어
  • 호스트 도커 데몬이 사용하는 소켓을 공유하여 도커 클라이언트 컨테이너에서 컨테이너를 실행시키는 것
  • 새로 실행시킨 컨테이너는 도커 클라이언트 컨테이너와 형제 관계를 가진다.
  • 따라서 테스트 환경이 도커 호스트 환경과 일치하다.
  • 호스트와 도커 이미지를 공유한다.

DooD 실행 방법

1
$ docker run -it -v /var/run/docker.sock:/var/run/docker.sock docker
  • 호스트의 도커 소켓을 컨테이너에 마운트 시켜준다

DinD란?

  • DinD는 Docker in Docker의 약어
  • 도커 컨테이너 내부에 호스트 도커 데몬과는 별개의 새로운 도커 데몬을 실행시키는 것 (도커 컨테이너 안에 도커 실행)
  • 새로 실행된 도커 데몬 컨테이너에, 새로운 도커 클라이언트 컨테이너를 이용하여 명령을 내리는 것이 가능하다(도커 안의 도커한테 명령 가능)
  • 새로 생성된 도커 환경은 컨테이너 환경이기 때문에, 테스트 후의 정리가 꽤나 간편하다
  • 보안 문제가 있기 때문에 다들 DooD를 추천한다.

DinD 실행 방법

  • 새로운 도커 컨테이너를 실행할 때, --privileged 옵션을 이용한다 (컨테이너가 호스트 머신의 대부분의 권한을 얻는 옵션) → 보안상 매우 좋지 못하다
This post is licensed under CC BY 4.0 by the author.