iNote

생각을 기록하면 오래 남습니다.

AI 어시스턴트

게스트님, 안녕하세요

무엇을 도와드릴까요?

  • 대화 기록이 없어요.

AI 어시스턴트

게스트님, 안녕하세요

무엇을 도와드릴까요?

  • 대화 기록이 없어요.
iNote
iNote
홈할 일일지독서나의 글글쓰기dev-guide

iNote

생각을 기록하면 오래 남습니다.

학습DevOps

Docker - Volume

서동찬 (sdc337dc@gmail.com)

생성일 : 2026.10.07 17:04

  • Docker 컨테이너는 일회용이며 삭제 시 안에 저장된 파일도 사라지는 반면, 볼륨을 연결하면 컨테이너 삭제 후에도 파일이 유지된다.
  • /models 폴더를 볼륨으로 연결하면 컨테이너는 /models를 평범한 폴더처럼 사용하지만 실제 파일은 외부 저장 공간에 저장된다.
  • 볼륨은 바인드 마운트(`-v ~/kure-models:/models`)와 네임드 볼륨(`-v kure-models:/models`) 두 종류가 있으며, 바인드 마운트는 호스트 폴더를 직접 접근할 수 있어 학습용으로 편리하다.
  • 회사 PC로 옮길 때 Image는 `docker pull`로, 볼륨은 별도로 처리되며 빈 볼륨이 생기므로 모델 파일을 복사하거나 서버 시작 시 자동 다운로드 설정이 필요하다.

AI 기반으로 임시 내용 가져옴. 따로 재학습이 필요함.


볼륨이 필요한 이유

컨테이너는 일회용입니다. 지우면 안에 만든 파일도 같이 사라집니다.

컨테이너 안에서 KURE 2.2GB 다운로드
→ 컨테이너 삭제 (docker rm)
→ KURE도 사라짐
→ 다음에 켜면 2.2GB를 또 다운로드

볼륨은 컨테이너가 지워져도 남는 저장 공간입니다. 컨테이너의 특정 폴더를 이 저장 공간에 연결해 두면, 거기에 쓴 파일은 컨테이너와 상관없이 유지됩니다.

컨테이너 안  /models  ←──연결──→  저장 공간 (컨테이너가 사라져도 남음)

컨테이너는 /models를 평범한 폴더로 보고 읽고 쓰지만, 실제 파일은 컨테이너 밖에 있습니다.

볼륨의 두 가지 종류

저장 공간이 어디에 있느냐에 따라 나뉩니다.

종류

저장 위치

명령 예시

바인드 마운트

내 PC의 내가 정한 폴더

-v ~/kure-models:/models

네임드 볼륨

Docker가 관리하는 영역 (위치를 신경 쓰지 않음)

-v kure-models:/models

앞에서 쓴 -v ~/kure-models:/models는 첫 번째, 바인드 마운트입니다. 내 PC의 ~/kure-models 폴더가 컨테이너의 /models와 같은 폴더가 됩니다. 이 방식은 Finder에서 폴더를 직접 열어 파일을 확인할 수 있어서 학습용으로 편합니다.

그래서 "안인가 밖인가"

  • Image 안: Dockerfile에 적은 것 (Python, 라이브러리, 코드)

  • 볼륨: Image에도 컨테이너에도 속하지 않는, 별도의 저장 공간

KURE는 두 번째에 있으므로, 앞서 "Docker 밖"이라고 한 건 "Image에 포함되지 않는다"는 뜻이었습니다. 그런데 이 표현이 "Docker와 무관하다"로 들렸다면 오해입니다. 정확히는 Docker가 연결해 주지만, Image와는 별개인 저장 공간입니다.

회사 PC로 옮길 때 의미

Image   → docker pull/load로 옮김 (환경 + 코드)
볼륨    → Image와 따로 취급 (모델 파일)

볼륨 내용은 docker pull로 따라오지 않습니다. 회사 PC에는 빈 볼륨이 생기므로, 다음 중 하나가 필요합니다.

  1. 집 PC의 ~/kure-models 폴더를 복사해 가져온다.

  2. 회사에서 서버가 시작될 때 모델이 없으면 자동으로 다운로드하게 한다. 첫 실행만 느리고 이후엔 볼륨에 남습니다.

이전 질문의 답은 이제 나옵니다. 서버는 떴는데 임베딩이 에러라면, 볼륨에 모델 파일이 없거나 경로가 틀린 것을 가장 먼저 의심합니다.

목차

  • 볼륨이 필요한 이유
  • 볼륨의 두 가지 종류
  • 그래서 "안인가 밖인가"
  • 회사 PC로 옮길 때 의미