Code/Docker

[Docker] Storage (Volumes & Bind mounts)

이성훈 Ethan 2024. 10. 16. 11:13

정의

 

  1.  Volume:
    • 도커에 의해 관리되는 호스트 파일시스템의 일부입니다 (일반적으로 /var/lib/docker/volumes/ 에 위치).
    • 도커 CLI 명령어를 통해 직접 관리할 수 있습니다.
    • 여러 컨테이너 간에 쉽게 공유할 수 있습니다.
    • 볼륨 드라이버를 사용하여 원격 호스트나 클라우드 제공업체에 데이터를 저장할 수 있습니다.
    • 컨테이너가 삭제되어도 볼륨은 유지됩니다.
  2. Bind Mount:
    • 호스트 시스템의 어느 위치에나 저장할 수 있습니다.
    • 호스트의 파일 또는 디렉토리가 컨테이너에 마운트됩니다.
    • 호스트 시스템의 파일 구조와 OS에 의존적입니다.
    • 호스트 시스템의 민감한 파일에 접근할 수 있어 보안상 주의가 필요합니다.

주요 차이점

 

  1. 관리:
    • Volume: 도커에 의해 관리됨
    • Bind Mount: 호스트 파일시스템에서 직접 관리됨
  2. 위치:
    • Volume: 도커가 관리하는 위치에 저장
    • Bind Mount: 호스트 시스템의 어느 위치에나 저장 가능
  3. 내용 수정:
    • Volume: 컨테이너 내부에서만 수정 가능
    • Bind Mount: 호스트와 컨테이너 양쪽에서 수정 가능
  4. 백업과 마이그레이션:
    • Volume: 더 쉽게 백업하고 마이그레이션할 수 있음
    • Bind Mount: 호스트 시스템에 의존적이라 마이그레이션이 복잡할 수 있음
  5. 공유:
    • Volume: 여러 컨테이너 간에 쉽게 공유 가능
    • Bind Mount: 호스트 시스템의 같은 경로를 사용하는 컨테이너 간에만 공유 가능
  6. 성능:
    • Volume: 특히 Linux에서 더 나은 성능을 제공할 수 있음
    • Bind Mount: 호스트 파일시스템에 직접 접근하므로 때에 따라 성능 차이가 있을 수 있음

'Code > Docker' 카테고리의 다른 글

[Docker] Networking (Bridge, Host, Overlay)  (0) 2024.10.16