inflearn logo
강의

講義

知識共有

開発者のための簡単なドッカー

イメージのビルド

빌드 방식에 대해 질문 있습니다.

解決済みの質問

99

devmingyo9794

投稿した質問数 6

1

빌드 방식 설명에서

도커 파일을 작성해서 이미지 빌드 명령을 실행하면

도커가 임시 컨테이너를 실행하고 도커 파일에 정의된 작업을 수행 및 커밋하여 새로운 레이어를 생성하고 임시 컨테이너를 삭제한다.

이렇게 그림으로 되어있는데,

  1. 커밋을 했다는게 새로운 레이어가 포함된 이미지를 만들었다는 건가요?

  2. 임시 컨테이너 생성, 커밋, 임시 컨테이너 삭제가 반복

저 과정이 반복되는 거면 지시어 한 문장을 만날 때마다 수행 및 커밋하고 임시 컨테이너 삭제하고를 반복한다고 이해했는데,

이러면 지시어가 많을 수록 임시 컨테이너 생성, 삭제가 많이 반복되는 건가요?

docker 가상화 ci/cd docker-compose github-actions docker-volume docker-image container

回答 2

0

daintree

dev.mingyo님 안녕하세요. 데브위키입니다.

네 말씀하신 부분이 정확합니다!

지시어가 많을 수록 임시 컨테이너 생성, 삭제가 반복되는 구조이구요.

각각의 지시어가 수행될 때마다, 도커가 임시 컨테이너를 띄우고, 그 작업을 수행하고, 결과를 새로운 레이어로 커밋한 뒤, 임시 컨테이너를 삭제합니다.
이렇게 하나의 지시어가 끝날 때마다 새로운 이미지 레이어가 생성되는 방식으로 최종 이미지가 점점 쌓여가게 됩니다.

추가로 궁금한 점 있으시면 언제든지 질문주세요! 😄

 

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. dev.mingyo님.

Docker의 빌드 과정과 레이어 관리는 매우 중요한데요, 질문하신 내용에 대해 설명드리겠습니다.

1. Docker의 커밋과 레이어

  • 커밋: Docker 파일을 통해 빌드할 때, 각 RUN, COPY 등의 명령어는 새로운 레이어를 만듭니다. 커밋이라는 용어는 도커에서 해당 작업을 실행한 후 생성된 파일 시스템의 변경 사항을 새로운 레이어로 기록하는 과정을 의미합니다. 이로 인해 최종적으로 하나의 이미지가 여러 개의 읽기 전용 레이어로 구성됩니다.

2. 빌드 과정에서 임시 컨테이너의 역할

  • 임시 컨테이너 생성, 작업 수행, 커밋, 삭제 과정: Docker는 Dockerfile 내의 명령어를 순차적으로 실행하며, 각 명령어별로 임시 컨테이너를 생성합니다. 그 컨테이너 내에서 명령어가 실행된 후, 그 결과는 새로운 레이어로 커밋되고 해당 임시 컨테이너는 삭제됩니다. 이 작업은 Dockerfile의 명령어 수만큼 반복됩니다.
    • 명령어가 많을수록 컨테이너 생성과 삭제가 반복되며, 이는 파일 시스템의 변경사항을 단계별로 기록하고 그에 따른 새로운 레이어를 쌓아 올리는 과정을 통해 이미지를 완성합니다.

최적화와 이해

  • 따라서 Dockerfile을 작성할 때 효율적이고 불필요한 명령어 사용을 최소화하는 것이 빌드 속도를 최적화하고 이미지를 효율적으로 관리하는 데 매우 중요합니다.

이러한 과정의 구체적인 이해를 도울 수 있는 유사한 기존 질문과 답변 링크를 제공해드리겠습니다:
- 멀티 스테이지 빌드 질문이있습니다! - Docker의 이미지 빌드 과정과 효율적인 관리에 대한 설명이 담겨 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

33강 도커 빌드 강의의 docker file

0

35

1

개발환경에서 도커 설정

1

95

2

vscode 터미널 설정 관련 질문

0

95

1

쿠버네티스 강의 언제 나오나요..

2

127

2

postgresql-repmgr:15 지원 종료에 따른 대체 이미지 변경 질문드립니다!

1

181

2

섹션 9. 레이어 관리에서 alpine OS 사용 관련 질문 있습니다!

1

68

2

도커 가상 네트워크와 Stateless 특징 관련 질문

1

74

2

우분투 설치

0

68

2

도커 보안을 실무에서 어떻게 대비하시는지 궁금합니다.

1

231

2

컨테이너를 활용한 개발환경 통일에 관하여

1

91

2

k8s 강의 일정

1

113

2

컨테이너의 Stateless 제약 관련 질문

0

96

1

docker push 하는 중 "single-platform image ..." 메세지가 나오고, docker hub에 image와 tag가 정상적으로 등록되지 않습니다.

2

97

1

docker pull [이미지] 다운로드시 에러 해결 방법 문의

1

438

2

강의 재생 오류

1

86

1

Remote JVM Debug Setting

1

105

1

컨테이너 레이어 질문 있습니다.

1

106

1

컨테이너 가상화 호스트 OS

1

154

2

강의 이미지 사용

1

168

2

도커컴포즈 오류

0

158

2

USER 명령어와 관련하여 질문드립니다

1

112

1

강의 예정

1

177

2

실행오류

1

213

3

Docker leafy-backend 실행오류

0

301

2