인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

eoyeong님의 프로필 이미지

작성한 질문수

개발자를 위한 쉬운 도커

이미지 커밋(Commit)

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

해결된 질문

작성

·

59

1

안녕하세요!

컨테이너를 처음 실행했을 때는 컨테이너 레이어에는 아무 파일도 존재하지 않는건가요?

만약 처음 컨테이너 레이어에 아무 파일도 존재하지 않는다면 docker -it bin/bash로 컨테이너 내부로 들어가서 보는 파일들은 이미지의 파일들이고, 그 이미지의 파일을 수정하면 컨테이너 레이어로 해당 파일을 복사한 뒤에 수정사항을 반영하는 건가요?(CoW)

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. eoyeong님께서 컨테이너 레이어와 관련된 질문을 주셨군요!

Docker에서는 컨테이너를 처음 실행했을 때, 읽기/쓰기 가능한 레이어가 추가됩니다. 이 새로운 레이어는 초기에는 빈 상태입니다. 컨테이너 내에서의 모든 변경 사항(파일 생성, 수정 등)은 이 읽기/쓰기 레이어에 저장됩니다.

즉, docker run -it [이미지명] /bin/bash로 컨테이너에 진입하여 보는 파일들은 이미지의 읽기 전용 레이어에 포함된 파일들입니다. 만약 이 파일들을 수정하게 되면, Docker의 Copy-on-Write(CoW) 전략에 따라 해당 파일은 읽기/쓰기 레이어로 복사된 후 수정됩니다. 이렇게 함으로써 원본 이미지를 변경하지 않고 파일 시스템의 변경 사항을 격리할 수 있습니다.

이 개념은 Docker의 레이어 기반 구조를 이해하는 데 매우 중요한 포인트입니다. 읽기 전용 레이어와 읽기/쓰기 레이어를 분리하여 관리함으로써, Docker는 효율적인 저장 공간 사용과 이미지 공유가 가능합니다.

좀 더 자세한 정보를 원하신다면, 비슷한 주제를 다룬 다음의 기존 질문을 참고하실 수 있습니다:

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

eoyeong님의 프로필 이미지

작성한 질문수

질문하기