
데이터 공유
Docker Volume
- 도커 볼륨은 호스트의 파일 시스템에 데이터를 저장하며, 컨테이너 간 공유가 가능
- 데이터 공유 방법 중 가장 보편적
- 도커에서 독립적으로 관리
docker volume create [볼륨이름]
- 호스트에서 새로운 볼륨을 생성
docker run -d --name container1 -v [볼륨이름]:/shared/data nginx
docker run -d --name container2 -v [볼륨이름]:/shared/data ubuntu
- 여러 컨테이너에 같은 볼륨을 마운트
- container1과 container2는 /shared/data 디렉토리에 동일한 데이터를 읽고 쓰기가 가능
- 볼륨은 컨테이너가 삭제되더라도 보존되어 데이터를 안전하게 보호할 수 있다.
Host Bind Mount
- 컨테이너간 호스트의 특정 디렉토리를 공유하여 데이터를 관리하는 방법
- 두 개 이상의 컨테이너가 같은 호스트 경로를 마운트하면 동일한 데이터를 공유할 수 있다.
docker run -d --name container1 -v /host/shared:/shared nginx
docker run -d --name container2 -v /host/shared:/shared alpine
- /host/shared라는 호스트의 디렉토리 경로
- 두 컨테이너의 /shared 디렉토리는 동일한 호스트 디렉토리를 공유한다.
Docker volume 과 Host Bind Mount 차이점

1. 정의 및 설계 차이
- Docker Volume
- 도커가 직접 관리하는 방식
- 보통 /var/lib/docker/volume 경로에 저장
- 특정 컨테이너에 의존하지 않고 별도로 생성 및 관리가 가능
- Docker CLI 명령어를 통해 관리
- Host Bind Mount
- 사용자가 지정한 디렉토리를 연결
- 관리는 전적으로 사용자 책임
2. 저장 위치
- Docker Volume
- 도커 엔진이 독립적인 영역을 할당하여 데이터를 관리
- 사용자는 물리적 위치에 신경을 쓰지 않아도 된다.
- 기본적으로 /var/lib/docker/volume 아래에 저장되며 디렉토리 이름은 UUID 형태로 자동 생성된다.
- Host Bind Mount
- 사용자가 명시한 디렉토리를 그대로 사용한다.
- 컨테이너는 마운트된 호스트 파일 시스템에 바로 접근 가능하다.
- /home/user/data를 컨테이너의 /app/data로 마운트하면 데이터는 /home/user/data에 위치
Tmpfs Mount
- 메모리를 기반으로 데이터를 저장하고 공유하는 방법
- 민감하거나 일시적인 데이터를 공유할 때 사용한다.
- 휘발성 데이터로 재부팅하거나 컨테이너를 삭제하면 데이터는 손실된다.
- 디스크 대신 메모리를 사용하여 빠른 속도를 가지고 있다.
docker run -d --name container1 --tmpfs /shared tmpfs:size=64m nginx
docker run -d --name container2 --tmpfs /shared tmpfs:size=64m alpine
Container as Storage
- 데이터를 저장할 컨테이너를 생성하여 다른 컨테이너가 볼륨으로 사용하는 방법
- 데이터를 쉽게 보관할 수 있다.
docker create -v /shared/data --name datacontainer alpine
- 데이터 저장용 컨테이너 생성
docker run -d --name container1 --volumes-from datacontainer nginx
docker run -d --name container2 --volumes-from datacontainer alpine
- 다른 컨테이너와 연결
'Docker > Docker' 카테고리의 다른 글
| [Docker] Ubuntu에서 Docker 설치 및 이미지 생성 (4) | 2025.07.09 |
|---|---|
| [Docker] Docker Compose (0) | 2025.02.22 |
| [Docker] 컨테이너 스토리지 01 (0) | 2025.02.07 |
| [Docker] 컨테이너 리소스 관리 (0) | 2025.02.02 |
| [Docker] 컨테이너 명령어 (0) | 2025.01.30 |