본문 바로가기

클라우드/Docker

[docker] volume 개념 설명하기

 

 

 

도커에서 바인드 마운트와 볼륨의 차이에 대해 설명을 요청하신 것 같습니다. 이를 바탕으로 두 방식에 대해 구체적으로 설명드리겠습니다.

1. 바인드 마운트 (Bind Mount)

  • 정의: 바인드 마운트는 호스트 머신의 특정 디렉터리나 파일을 컨테이너 안에 마운트하는 방식입니다.
  • 경로: 바인드 마운트는 호스트 머신의 경로를 지정해서 사용합니다. 예를 들어, /vol 경로 아래에 있는 index.html 파일을 컨테이너 안에 마운트하고자 한다면, docker run 명령어에서 다음과 같이 사용합니다:이 경우, 호스트 시스템의 /vol/index.html 파일이 컨테이너 내부의 /path/in/container/index.html 위치에 마운트됩니다.
  • bash
    코드 복사
    docker run -v /vol/index.html:/path/in/container/index.html my-container
  • 특징:
    • 호스트 시스템의 파일 시스템과 밀접하게 연결됩니다.
    • 호스트 시스템의 파일 변경이 바로 컨테이너에 반영됩니다.
    • 컨테이너에서 변경된 내용도 호스트 파일에 바로 반영됩니다.
    • 지정한 경로에 의존하므로 호스트 시스템과의 직접적인 의존성이 존재합니다
  • -> 
개념: 바인드 마운트는 내 컴퓨터에 있는 특정 폴더나 파일을 도커 안에서 바로 사용할 수 있도록 연결하는 방법

예시: 예를 들어, 내 컴퓨터에 C:\data\index.html 파일이 있다고 하면, 

이 파일을 도커에서 사용하려면 바인드 마운트를 사용해 도커에 연결할 수 있습니다.

특징:
내 컴퓨터와 도커가 직접 연결됩니다.

내 컴퓨터에서 파일을 수정하면 바로 도커 안에서도 그 수정이 반영돼요.

 

 

2. 볼륨 방식 (Volume)

  • 정의: 볼륨은 도커가 관리하는 디렉터리로, 주로 컨테이너 간 데이터 공유나 영속적인 데이터를 저장하는 데 사용됩니다. 도커는 볼륨을 내부적으로 관리하므로 호스트 시스템에 의존하지 않습니다.
  • 경로: 도커가 관리하는 특정 위치에 데이터를 저장합니다. 예를 들어, 도커는 /var/lib/docker/volumes/<volume-name>/_data 경로 아래에 데이터를 저장할 수 있습니다. 만약 index.html 파일을 볼륨을 통해 마운트하려면 다음과 같이 실행합니다:이 경우, my-volume이라는 도커 볼륨이 생성되고, 볼륨 내의 데이터는 컨테이너 내의 /path/in/container 위치에 마운트됩니다.
  • bash
    코드 복사
    docker run -v my-volume:/path/in/container my-container
  • 특징:
    • 도커가 관리하는 방식으로, 컨테이너와 독립적인 데이터를 제공합니다.
    • 호스트 시스템의 파일 시스템에 의존하지 않으며, 도커가 자체적으로 경로를 관리합니다.
    • 여러 컨테이너 간에 데이터를 쉽게 공유할 수 있습니다.
    • 데이터가 컨테이너 외부에 저장되기 때문에, 컨테이너가 삭제되어도 데이터는 유지됩니다

 

볼륨방식 쉽게 설명하기 

1. 개념: 볼륨은 도커가 관리하는 특별한 공간을 만들어서, 그 안에 데이터를 저장하는 방법이에요. 
2. 이 공간은 도커가 알아서 관리해줍니다.


예시: 내가 도커를 사용할 때 중요한 파일을 도커 안에 보관하고 싶으면, 볼륨을 만들어 그 안에 데이터를 
저장할 수 있어요. 이 데이터는 도커가 따로 관리하고, 내 컴퓨터와는 연결되지 않아요.

특징:
도커가 데이터 저장을 관리합니다.
다른 도커 컨테이너들이 이 공간을 공유할 수 있어요.
도커가 데이터를 지속적으로 저장해줘서, 컨테이너가 삭제돼도 데이터는 그대로 남아요.

 

 

 

요약

  • 바인드 마운트: 호스트 시스템의 특정 경로를 컨테이너에 마운트. 호스트와 컨테이너 간 실시간 데이터 동기화.
  • 볼륨: 도커가 관리하는 경로에 데이터를 저장. 컨테이너 간 데이터 공유와 영속성 제공.
 
 
반응형

'클라우드 > Docker' 카테고리의 다른 글

docker-compose  (1) 2024.11.26
[docker] devops/컨테이너  (0) 2024.11.25
[DOCKER] EC2 생성 / Nginx 배포  (0) 2024.11.24
[docker] 기본개념 및 동작  (2) 2024.11.20
Docker 명령어 정리  (1) 2024.11.17