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

capstonefittrip님의 프로필 이미지

작성한 질문수

개발자를 위한 쉬운 도커

이미지와 레이어(Layer)

copy-on-write 전략에 대해 질문 있습니다.

해결된 질문

작성

·

137

·

수정됨

1

  1. index.html 파일 혹은 nginx.conf 파일을 수정한다고 했을때 읽기 레이어에 있는 파일들을 수정하는게 아니라 읽기 레이어에 있는 파일들을 읽기/쓰기 레이어로 COPY 해오고 COPY 해온 파일들을 수정해서 사용하는 건가요?

  2. 위 내용이 맞다면 굳이 읽기쪽 레이어에 있는 파일을 COPY 안하고 읽기/쓰기에 있는 파일을 바로 수정하면 안되는건지 궁금합니다.

  3. 읽기/쓰기 레이어에 있는 nginx.conf 파일을 수정한다고 했을때 실무에서의 흐름이 EC2에 접속하고 docker를 설치하고 nginx 이미지를 pull 하고 nginx 컨테이너를 띄운다음 nginx 컨테이너에 접속해서 nginx.conf 파일을 수정하기 가 맞는건지 궁금합니다.

답변 2

0

데브위키님의 프로필 이미지
데브위키
지식공유자

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

 

2번에 설명을 더하자면, 읽기/쓰기 레이어에는 초기 단계에는 아무 것도 없는 빈 상태라고 보시면 됩니다. 그래서 새로운 읽기/쓰기 레이어에서 기존 레이어에 있는 파일을 읽거나 수정할 수 있는 것이죠.

기존 레이어에 존재하는 파일을 읽을 때는 읽기 전용 레이어의 파일을 그대로 읽습니다. 예를 들어 이전 레이어에 index.html파일이 있는 경우 새로운 레이어에는 index.html 파일이 중복될 필요가 없는 것이죠.

하지만 파일을 수정할 경우에는 읽기 전용 레이어의 파일은 수정할 수 없습니다. 그렇기 때문에 읽기/쓰기 레이어에 파일을 복사해와서 수정한 후 최신 버전으로 사용하는 것입니다. 예를 들어 index.html 파일의 내용을 수정할 경우에는, 이전 레이어의 파일을 읽기/쓰기 레이어로 복사한 후 수정해서 새로운 버전으로 관리하는 것입니다. 읽기 전용 레이어의 파일은 말 그대로 읽기 전용이기 때문에 수정이 불가능하기 때문입니다.

 

강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!

0

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

다음 정보에 기반하여 답변드리겠습니다.

  1. 도커 이미지는 여러 레이어로 구성되며, 이 레이어들은 읽기 전용입니다. copy-on-write 전략은 파일이 수정될 때 기존 읽기 전용 레이어의 파일을 새로운 쓰기 가능한 레이어로 복사한 후 수정하는 방식을 의미합니다. 따라서, 새로운 읽기/쓰기 레이어에 파일을 복사하고 이를 수정하는 것이 맞습니다.

  2. 읽기 전용 레이어의 파일을 직접 수정할 수 없기 때문에, 변경이 필요한 파일은 읽기/쓰기 레이어로 복사하여 수정합니다. 이는 이미지의 불변성을 유지하고, 한 이미지의 기반 레이어를 여러 컨테이너가 공유할 수 있게 함으로써 효율적인 저장 공간 사용을 가능하게 합니다.

  3. 실제 작업 흐름에 대해서는 단계별로 말씀하신 과정이 일반적입니다. EC2 인스턴스에 접속하여 도커를 설치한 후, 필요한 nginx 이미지를 pull 받습니다. 그리고 nginx 컨테이너를 실행한 후, 컨테이너 내의 nginx.conf 파일을 수정하는 것이 보통의 절차입니다. 이 과정에서 컨테이너 내부 또는 볼륨을 사용하여 설정 파일을 관리할 수 있습니다.

제공된 정보에는 copy-on-write에 관한 직접적인 내용은 포함되어 있지 않지만, 도커 이미지와 컨테이너의 레이어 구조 및 관리 방법에 대한 기본적인 이해를 바탕으로 답변을 구성하였습니다.