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

이승주님의 프로필 이미지
이승주

작성한 질문수

개발자를 위한 쉬운 도커

docker volume 관련 질문

해결된 질문

작성

·

52

1

안녕하세요 도커 volume 관련해서 질문드립니다.

저희가 수업에서는 db에 있는 data들을 volume에 연결하여 사용하였잖아요.
근데 예를들어 nodejs 백엔드 프레임워크와 mongodb를 사용한다고 했을 때 제가 백엔드 서버에서 db서버로 유저 데이터를 보낸다했을 때 그 보낸 데이터가 제 로컬 피시에 저장이안되고 db자체 서버에 저장되는거같은데 굳이 volume을 왜 사용하는건가요?
아 그리고 backend서버에도 volume이 필요할까요?
필요하다면 어떨때 보통 volume에 데이터를 저장하나요?

답변 2

0

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

이승주님 안녕하세요. 데브위키입니다.

먼저 node.js 백엔드 애플리케이션 컨테이너와 mongodb 컨테이너 구조로 구성한다고 가정했을 때,

db서버에 저장된 데이터는 컨테이너가 재시작되면 이미지의 상태로 초기화됩니다.

컨테이너는 상태를 저장하지 않기 때문에, mongodb 컨테이너가 재시작되어도 데이터를 유지하려면 데이터를 저장하는 디렉터리를 볼륨에 마운트해서 사용해야 합니다.

 

백엔드 서버에는 일반적으로 볼륨을 연결하지 않습니다.

만약 실행 중인 서버의 로컬 스토리지에 특정 파일을 저장하고, 응답에 활용하는 구조라면 볼륨을 활용해볼 수 있을 것 같습니다.

 

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

0

안녕하세요, 인프런 AI 인턴입니다.
이승주님이 도커의 볼륨에 대한 궁금증을 가지고 계시군요. 볼륨은 도커 환경에서 데이터의 영속성을 보장하기 위해 사용되는 중요한 기능입니다. 이에 대해 몇 가지 설명을 드리겠습니다.

  1. 볼륨 사용의 이유:

    • 데이터베이스와 같은 애플리케이션에서 데이터를 저장할 때, 기본적으로 도커 컨테이너 내부 파일 시스템은 휘발성입니다. 즉, 컨테이너가 중지되거나 삭제되면 해당 컨테이너 내의 데이터도 사라집니다. 이를 방지하고 데이터를 영구적으로 저장하기 위해 볼륨을 사용합니다.
    • 도커 볼륨을 사용하면 데이터를 호스트 시스템의 특정 경로에 저장하여 컨테이너가 삭제되어도 데이터를 안전하게 보존할 수 있습니다.
  2. 볼륨이 백엔드 서버에 필요한 경우:

    • 백엔드 서버에서 로그 파일이나 특정 설정 파일을 지속적으로 유지하고 싶을 때 볼륨을 사용할 수 있습니다.
    • 또한, 애플리케이션의 비즈니스 로직에 따라 유저가 업로드한 파일이나 캐시 데이터 등을 저장하는 경우에도 볼륨을 사용합니다.
  3. 어떨 때 데이터를 볼륨에 저장하는가:

    • 유저 업로드 파일: 웹 애플리케이션에서 유저가 업로드한 파일을 영구적으로 저장해야 할 때.
    • 구성 파일 및 로그: 중요한 애플리케이션 구성 파일이나 로그 파일을 유지하고자 할 때.
    • 데이터베이스 저장 데이터: 데이터베이스 컨테이너에서 데이터가 들어있는 데이터를 보존하려는 경우.

이와 관련된 추가적인 정보들을 아래의 링크에서 확인하시면 좋을 듯합니다:

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

이승주님의 프로필 이미지
이승주

작성한 질문수

질문하기