[Jenkins] DInD vs DOOD

Dahui Kim·2024년 2월 4일

DevOps

목록 보기
1/4

docker 에서는 dood 방식을 권장←previleged 옵션 사용으로 접근 권한이 높아 보안상 문제가 될 수 있다.

참고 1 | 참고 2 | 참고 3

docker in Docker (DinD)

dind

도커 내에서 도커 데몬을 추가로 실행하는 방식이다. 실제 데몬을 동작시켜야 하기 때문에 --privileged옵션을 사용하여 추가 권한을 부여하는 것이 필요하다.

docker run --privileged --name <컨테이너명> -d <이미지명>

DinD 방식은 도커 안에 새로운 격리된 환경을 만들 수 있다는 장점이 있지만, 보안상의 문제로 추천되는 방식은 아니다.

  • -privileged 옵션은 호스트의 모든 장치에 액세스하는 권한을 부여하고 컨테이너가 호스트의 컨테이너 외부에서 실행되는 프로세스와 거의 동일한 호스트 액세스를 허용한다.
    • 컨테이너가 호스트 전체 권한을 갖게 되는 치명적인 결함을 가지게 돼 도커에서는 DOOD 방식을 권장하고 있다.

Docker out of Docker(DOOD)

dood

도커 호스트에 컨테이너들을 병렬로 띄우는 방식이다. 내부에 다른 도커 컨테이너를 실행시키는 것이 아니라 현재 컨테이너와 동등한 위치에 있는 컨테이너를 실행시키는 것이다. 도커 소켓을 공유하는 것으로 구현된다.

profile
긍정적인 생각, 적극적인 생활

0개의 댓글