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
참고
- DinD(docker in docker)와 DooD(docker out of docker)
- Jenkins를 docker 컨테이너로 구축하기(Docker in Docker)
- DooD (docker-outside-of-docker) 를 통해 Jenkins 컨테이너에서 docker 사용하기
젠킨스에서 도커명령어를 사용해야하는 이유…?
- jenkins에서 빌드한 spring 프로젝트의 이미지를 만들기 위해 docker build 를 써야해서
- docker build 는 dockerfile을 기반으로 이미지 생성
'Docker' 카테고리의 다른 글
Docker 기본 개념 (0) | 2023.04.13 |
---|