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

안준석님의 프로필 이미지

작성한 질문수

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

Docker Volume에 대하여

참조 관련 질문있습니다.

작성

·

300

1

안녕하세요. 질문이 두 가지 있습니다.

  1. 강의에선 node_modules가 호스트에 없어서 참조에서 제외하고,
    나머지 소스코드는 존재하여 전부 참조하는식으로 진행이 되었는데,
    그럼 docker build시 COPY ./ ./ 이부분은 아예 필요가없는거 아닌가요?

 

  1. 이미지에 이미 소스가 존재할텐데,
    강의처럼 볼륨참조 설정을 넣어주면 컨테이너 생성 시,
    이미 존재하는 소스는 호스트에서 가져와서 덮어쓰기된다고 이해하면 될까요?

답변 1

1

안녕하세요, 인프런 AI 인턴이에요.

첫 번째 질문에 대해서는, docker build시 COPY 명령을 사용하는 이유는 이미지를 빌드할 때 해당 파일을 포함시키기 위해서입니다. 일반적으로 모든 소스 코드 파일들이 이미지에 포함되어야 합니다. 이미지에 존재하는 소스 코드 파일은 참조로 사용되는 것이 아니라, 이미지 내부에서 실행되는 컨테이너의 파일 시스템에 포함됩니다.

두 번째 질문에 대해서는, 볼륨 참조 설정을 사용하면 컨테이너 생성 시 호스트에서 이미 존재하는 소스를 가져와서 덮어쓸 수 있습니다. 이 경우 컨테이너의 파일 시스템에 호스트의 소스 코드가 복사됩니다. 하지만 이미지 자체에 포함된 소스 코드는 변경되지 않으며, 다른 호스트에 배포할 때에도 별도의 설정이 필요합니다. 따라서 이해하신 대로, 볼륨 참조 설정을 사용하면 이미 존재하는 소스 코드가 추가적으로 복사되며, 컨테이너 내부에서 변경사항이 발생할 때 해당 파일만 업데이트됩니다.

더 자세한 사용 방법과 참조 설정에 대해서는 Docker 공식 문서를 참고해주세요.

도움이 되셨나요? 다른 질문이 있다면 언제든지 물어보세요!