본문 바로가기
Docker

DinD(docker in docker)와 DooD(docker out of docker)

by 연잔 2023. 4. 13.

DinD와 DooD

  • 둘다 컨테이너 안에서 도커 명령어를 사용하기 위한 방법

DinD

  • 도커 컨테이너 내에서 도커 데몬을 추가로 동작
  • 도커인 도커를 만들 때 --privileged 로 추가 권한 부여 → 호스트 장치에 권한을 부여해서 권장하지 않는 방식
docker run --privileged --name dind1 -d docker:20.10.5-dind

DooD

  • 기존 컨테이너를 추가로 생성
  • /var/run/docker.sock 파일을 외부(호스트 환경)과 공유함으로 도커 데몬 사용 가능
  • /var/run/docker.sock : 로컬 시스템에서 도커 데몬과 통신할 수 있는 소켓 파일
docker run -it -v /var/run/docker.sock:/var/run/docker.sock docker

DooD 설정 했는데 컨테이너 안에서 도커 명령어가 없다고 뜸

→ 도커 cli 는 다운 받아야 함

 

Jenkins를 docker 컨테이너로 구축하기(Docker in Docker)

0. 계기올해 초에 회사 jenkins 서버를 docker로 재구축한 적이 있었습니다. 그 때의 경험을 블로그에 반드시 남겨야겠다고 생각했었는데, 이제서야 글을 쓰게 되었네요. 일단 제가 겪은 상황은 다음

postlude.github.io

→ 도커 ce 다운 안 받아져서 아래 명령어 침

apt-get update

apt-get -y install apt-transport-https \\
     apt-utils \\
     ca-certificates \\
     curl \\
     gnupg2 \\
     zip \\
     unzip \\
     software-properties-common

curl -fsSL <https://download.docker.com/linux/$>(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey

add-apt-repository \\
   "deb [arch=amd64] <https://download.docker.com/linux/$>(. /etc/os-release; echo "$ID") \\
   $(lsb_release -cs) \\
   stable" && \\

apt-get update

apt-get -y install docker-ce

참고


젠킨스에서 도커명령어를 사용해야하는 이유…?

  • jenkins에서 빌드한 spring 프로젝트의 이미지를 만들기 위해 docker build 를 써야해서
  • docker build 는 dockerfile을 기반으로 이미지 생성

'Docker' 카테고리의 다른 글

Docker 기본 개념  (0) 2023.04.13