해결된 질문
작성
·
59
1
안녕하세요!
컨테이너를 처음 실행했을 때는 컨테이너 레이어에는 아무 파일도 존재하지 않는건가요?
만약 처음 컨테이너 레이어에 아무 파일도 존재하지 않는다면 docker -it bin/bash로 컨테이너 내부로 들어가서 보는 파일들은 이미지의 파일들이고, 그 이미지의 파일을 수정하면 컨테이너 레이어로 해당 파일을 복사한 뒤에 수정사항을 반영하는 건가요?(CoW)
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. eoyeong님께서 컨테이너 레이어와 관련된 질문을 주셨군요!
Docker에서는 컨테이너를 처음 실행했을 때, 읽기/쓰기 가능한 레이어가 추가됩니다. 이 새로운 레이어는 초기에는 빈 상태입니다. 컨테이너 내에서의 모든 변경 사항(파일 생성, 수정 등)은 이 읽기/쓰기 레이어에 저장됩니다.
즉, docker run -it [이미지명] /bin/bash
로 컨테이너에 진입하여 보는 파일들은 이미지의 읽기 전용 레이어에 포함된 파일들입니다. 만약 이 파일들을 수정하게 되면, Docker의 Copy-on-Write(CoW) 전략에 따라 해당 파일은 읽기/쓰기 레이어로 복사된 후 수정됩니다. 이렇게 함으로써 원본 이미지를 변경하지 않고 파일 시스템의 변경 사항을 격리할 수 있습니다.
이 개념은 Docker의 레이어 기반 구조를 이해하는 데 매우 중요한 포인트입니다. 읽기 전용 레이어와 읽기/쓰기 레이어를 분리하여 관리함으로써, Docker는 효율적인 저장 공간 사용과 이미지 공유가 가능합니다.
좀 더 자세한 정보를 원하신다면, 비슷한 주제를 다룬 다음의 기존 질문을 참고하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.