docker -v / volume mount

agnusdei·2023년 7월 26일
0

도커에서 볼륨 마운트는 호스트와 컨테이너 간의 특정 디렉토리를 공유하거나 컨테이너 간에 데이터를 보존하고 공유하기 위한 방법 중 하나입니다. 볼륨 마운트는 컨테이너의 파일 시스템과 호스트 시스템의 파일 시스템을 연결하여 데이터를 외부에 보존할 수 있도록 도와줍니다. 이를 통해 컨테이너가 삭제되거나 재시작되더라도 데이터가 영구적으로 보존되며, 여러 컨테이너에서 동일한 데이터를 공유할 수 있습니다.

볼륨 마운트의 종류:

  1. Bind Mount: Bind mount는 호스트 시스템의 기존 디렉토리를 컨테이너에 연결하는 방법입니다. 컨테이너에서 해당 경로에 작성된 데이터는 호스트의 파일 시스템에 실시간으로 반영됩니다.

    코드 예시:

    docker run -d --name my-container -v /host/path:/container/path my-image

    여기서 -v /host/path:/container/path는 호스트의 /host/path를 컨테이너 내의 /container/path에 바인드 마운트합니다.

  2. Volume: Volume은 도커가 관리하는 파일 시스템 내에 별도의 공간을 할당하여 사용하는 방법입니다. 볼륨은 호스트의 파일 시스템과 독립적으로 동작하고, 컨테이너와 별도로 관리됩니다. 도커 볼륨은 컨테이너를 삭제하더라도 데이터가 보존되며 다른 컨테이너에서도 사용 가능합니다.

    코드 예시:

    docker volume create my-volume
    docker run -d --name my-container --mount source=my-volume,target=/container/path my-image

    여기서 docker volume create my-volume 명령으로 볼륨을 생성한 뒤, --mount source=my-volume,target=/container/path로 생성된 볼륨을 컨테이너에 마운트합니다.

볼륨 마운트 사용 주의 사항 및 활용:

  1. 컨테이너 삭제 시 데이터 일관성 유지: 데이터를 외부 스토리지에 보존함으로써 컨테이너 삭제 시에도 데이터 일관성을 유지할 수 있습니다.
  2. 여러 컨테이너 간 데이터 공유: 동일한 볼륨을 여러 컨테이너에서 공유할 수 있으므로, 필요한 경우 데이터를 공유하고 동기화할 수 있습니다.
  3. 보안 주의: 외부 스토리지를 마운트 하는 경우, 민감한 데이터가 유출될 가능성에 대비해서 안전한 보안 기술을 적용하는 것을 고려해야 합니다.

도커 볼륨 마운트는 데이터를 영구적으로 보존하고 여러 컨테이너와 공유할 수 있는 방법을 제공하며, 컨테이너 서비스에 대한 데이터 일관성과 안정성을 높이는 기능입니다. 데이터의 중요성을 고려한 적절한 볼륨 마운트 방식을 선택하고 사용하면 분산 시스템 환경에서 효과적으로 데이터를 관리할 수 있습니다.

도커에서 -v 옵션은 호스트와 컨테이너 간의 공유된 디렉터리나 파일을 지정할 수 있게 해주는 옵션입니다. 이 옵션을 사용하면 호스트의 폴더들을 컨테이너 안에서 마치 컨테이너 안에서 파일이 생성된 것처럼 접근이 가능합니다.

Bind Mount 예시:

  1. 단순한 바인드 마운트:
    docker run -d --name my-container -v /host/path:/container/path my-image
    이 예시에서, 호스트의 /host/path를 컨테이너 내의 /container/path에 바인드 마운트합니다.
  1. 읽기 전용 바인드 마운트:
    docker run -d --name my-container -v /host/path:/container/path:ro my-image
    :ro 플래그를 사용하여 컨테이너에서 읽기 전용으로 설정합니다. 이 설정은 컨테이너 내에서 파일 쓰기 작업이 제한됩니다.

Volume 예시:

  1. 단순한 볼륨 마운트:

    docker run -d --name my-container -v my-volume:/container/path my-image

    이 예시에서는 my-volume이라는 볼륨을 컨테이너 내의 /container/path에 마운트합니다.

  2. 읽기 전용 볼륨 마운트:

    docker run -d --name my-container -v my-volume:/container/path:ro my-image

    :ro 플래그를 사용하여 컨테이너에서 읽기 전용으로 설정합니다.

옵션 특징:

  1. 생략 시 기본 Read-Write : -v 옵션을 사용할 때 :ro 플래그가 붙지 않으면 기본적으로 읽기-쓰기 모드로 설정됩니다.
  2. -v 옵션과 --mount 옵션 차이 : 추가적으로, --mount 옵션을 사용하면 -v 옵션보다 더 많은 옵션들을 사용할 수 있지만, 일부 사용하기 쉽지 않습니다. -v 옵션은 간단한 바인드 마운트와 볼륨 마운트 정보를 모두 함께 사용할 수 있습니다.
  3. 도커 컴포즈에서 -v 옵션 사용하기 : docker-compose.yml 파일에서 volumes 키를 사용하여 -v 옵션을 설정할 수 있습니다. 예를 들어:
    services:
      web:
        volumes:
          - /host/path:/container/path
          - my-volume:/data
    volumes:
      my-volume:
    이 예에서는 web 서비스가 /host/path/container/path 사이에 바인드 마운트됩니다. my-volume은 container /data에서 사용됩니다.

0개의 댓글