본문 바로가기
Docker

볼륨(Volume)

by xogns93 2024. 12. 4.

도커에서 볼륨(Volume)컨테이너와 호스트 시스템 간의 데이터 공유를 위해 사용되는 스토리지 방식입니다. 도커 컨테이너의 파일 시스템은 기본적으로 휘발성이기 때문에, 컨테이너가 삭제되거나 중단되면 그 안의 데이터도 사라집니다. 이런 문제를 해결하기 위해 볼륨을 사용합니다.


도커 볼륨의 특징

  1. 데이터 영속성:
    • 컨테이너가 삭제되더라도 데이터는 유지됩니다.
  2. 호스트-컨테이너 간 공유:
    • 볼륨을 통해 호스트 시스템의 파일을 컨테이너 안에서 사용할 수 있습니다.
  3. 컨테이너 간 데이터 공유:
    • 여러 컨테이너가 같은 볼륨을 공유하여 데이터를 주고받을 수 있습니다.
  4. 관리 용이:
    • 도커 명령어를 통해 볼륨을 쉽게 생성, 삭제, 관리할 수 있습니다.

볼륨의 사용 목적

  1. 데이터 보존:

    • 컨테이너가 삭제되더라도 데이터를 유지해야 할 때.
    • 예: 데이터베이스 컨테이너(MySQL, PostgreSQL 등)의 데이터 보존.
  2. 호스트 파일 접근:

    • 컨테이너가 호스트의 파일을 읽거나 수정해야 할 때.
    • 예: 개발 중 애플리케이션 코드 공유.
  3. 컨테이너 간 데이터 공유:

    • 여러 컨테이너가 동일한 데이터를 사용할 때.
    • 예: 웹 서버 컨테이너와 애플리케이션 컨테이너 간 데이터 공유.

볼륨의 종류

  1. 도커 관리 볼륨:

    • 도커가 생성하고 관리하는 볼륨.
    • 사용자가 경로를 지정하지 않아도 자동으로 도커 내부에서 관리됩니다.
    • 예:
      docker run -v my-volume:/data my-container
  2. 바인드 마운트(Bind Mount):

    • 호스트의 특정 디렉터리를 컨테이너에 마운트합니다.
    • 더 많은 제어를 제공하지만, 경로를 직접 지정해야 합니다.
    • 예:
      docker run --mount type=bind,src=/path/on/host,dst=/path/in/container my-container
  3. tmpfs 볼륨:

    • 컨테이너의 메모리에만 데이터를 저장하며, 휘발성 데이터를 처리할 때 사용.
    • 컨테이너가 중단되면 데이터가 삭제됩니다.
    • 예:
      docker run --mount type=tmpfs,tmpfs-size=64m,dst=/path/in/container my-container

볼륨 사용 방법

  1. 도커 볼륨 생성

    docker volume create my-volume
  2. 컨테이너에서 볼륨 사용

    docker run -d --name my-container -v my-volume:/data my-image
  3. 바인드 마운트 사용

    docker run -d --name my-container --mount type=bind,src=/host/path,dst=/container/path my-image
  4. 볼륨 확인

    docker volume ls
  5. 볼륨 삭제

    docker volume rm my-volume

언제 볼륨을 사용하는가

  • 컨테이너 데이터를 보존해야 하는 경우.
  • 개발 환경에서 호스트의 코드를 컨테이너 안에서 실시간으로 사용해야 할 때.
  • 여러 컨테이너가 동일한 데이터에 접근해야 할 때.
  • 민감한 데이터를 컨테이너 외부로 백업하려는 경우.

예제

1. 도커 관리 볼륨

docker run -d --name my-nginx -v my-data:/usr/share/nginx/html nginx:latest
  • 도커가 my-data라는 볼륨을 생성하고, 이를 컨테이너의 /usr/share/nginx/html에 마운트.

2. 바인드 마운트

docker run -d --name my-nginx --mount type=bind,src=/host/path,dst=/usr/share/nginx/html nginx:latest
  • 호스트의 /host/path 디렉터리를 컨테이너의 /usr/share/nginx/html에 마운트.

3. tmpfs 볼륨

docker run -d --mount type=tmpfs,tmpfs-size=64m,dst=/app tmpfs-container
  • 컨테이너의 /app 경로에 휘발성 데이터를 저장.

요약

  • 도커 볼륨은 데이터를 영속적으로 저장하거나 컨테이너와 호스트/다른 컨테이너 간의 데이터 공유를 위해 사용됩니다.
  • 도커 관리 볼륨은 자동화된 관리, 바인드 마운트는 유연한 제어가 장점입니다.
  • 볼륨은 데이터베이스, 로그 관리, 개발 환경에서 주로 사용됩니다.

'Docker' 카테고리의 다른 글

도커 인 액션 6장  (0) 2024.12.05
도커 인 액션 5장  (0) 2024.12.04
도커 인 액션 4장  (0) 2024.12.04
도커 인 액션 2장  (0) 2024.12.04
도커 인 액션 1장  (0) 2024.12.04