DooD, DinD 또는 Kaniko 외 다른 방법은 없는걸까요?
안녕하세요 지식 공유자님 :)
또 이렇게 질문을 남깁니다 ㅜㅜ (질문이 많아 죄송합니다...)
이미지를 빌드할 때 DooD, DinD 을 섞어서 사용하거나 Kaniko 를 사용한다고 하셨는데,
DooD + DinD 는 privileged 문제, Kaniko 는 빌드 속도 문제를 보완한 프로젝트 같은 것이 아예 없는 것인지 궁금합니다.
DooD + DinD 를 사용해도 privileged 문제가 완전히 해결되지 않을텐데, 이를 감안하고 사용하나요?
답변 1
1
안녕하세요.
일단 조금 분리해서 생각할 필요가 있을 것 같습니다. 간단히 설명부터 드리면,
DooD
DooD는 --privileged가 아닌 도커 소켓을 공유해서 특정 요청(강의에서는 파이프라인을 동작시킬 추가 컨테이너를 띄우는 것)을 처리해주는 형태입니다.
DinD
DinD는 --privileged를 부여해서 DooD를 통해 생성된 컨테이너 이미지 내에서 도커 데몬을 활용하기 위한 형태입니다.
Kaniko
DinD 형태를 활용함으로써 부여되는 --privileged를 제거하기 위해 도커 데몬을 활용하지 않고, 로컬에 직접 다운로드한 후에 스냅샷을 만들어 이미지를 만드는 도구입니다.
결국, DinD + DooD를 섞는다는 의미는 파이프라인에서 사용할 컨테이너 이미지를 띄워주는 서비스(DooD)와 그 서비스를 통해 .gitlab-ci.yml에 정의된 이미지를 띄워서 컨테이너 이미지를 빌드하기 위한 이미지를 띄우는 거다 라고 봐주시면 좋을 것 같습니다.(이때 형태가 DinD) (쓰면서도 조금 헷갈리실 수 있을 것 같네요.)
어찌됐던, 말씀하신 내용을 모두 커버할 수 있는 방법이 없는건 아닙니다.
rootless docker daemon을 사용하는건데요. 이게 방법도 복잡(?)하고 여러 제한도 있어서 사용을 추천드리기가 조금 그렇습니다.
대신 추천드리는 도구는 builtkit 인데요. buildkitd를 rootless로 띄워서 사용하면 되긴 하지만 당연하게도 은탄환은 없기 때문에 추가로 희생되는 것들이 있긴 합니다.(도입하시기 전에 여러방면으로 꼭 테스트 많이 해보시길 권해드립니다.)
참고 부탁드립니다.
감사합니다.
수강기간 연장 가능하실까요?
0
9
1
강의 듣는 중인데,
0
21
1
36강 오탈자가 있는 거 같습니다.
0
14
2
node.js 설치 관련 질문 드립니다
0
18
1
Cursor 설정
0
23
1
맥북으로 RDP 연결 질문
0
27
2
라우팅 테이블 설정 중 궁금한게 있습니다.
0
33
1
수강 연장 가능하면 요청 드립니다.
0
25
2
JPA Repository 질문이 있습니다!
1
32
2
페이지네이션 처리를 쿼리에서 하는 방식 질문
1
35
1
디바이스 페어링 문의
0
31
2
yml 작성하다가 에러 발생해서 문의 드립니다.
0
38
2
(강의 6분 50초 부분) Workspace 안에 index.html이 비어있음
0
32
2
섹션2. 1.5쿠버네티스_컨트롤플레인_노드와_워커_노드_그리고 kubeadm으로 쿠버네티스 직접 구성하기-v1.30 오류
0
36
2
cosign tlog 관련 409에러
1
72
2
gitleaks 시크릿 스캔의 기준에 대한 질문입니다.
1
71
2
gitlab-ci.yml과 CI/CD 파이프라인 까지 수강중입니다.
0
77
2
first before
1
84
1
Private Subnet과 Gitlab
0
238
2
AWS 역할에 대해서
1
351
1
강의 교안
1
277
1
Kaniko 의 한계 부분에 대한 질문
1
256
1
artifacts 에 대한 질문이 있습니다!
1
256
1
App Runner 서비스 생성 시 실패
2
518
1





