Data Persistence in Docker

이정훈·2024년 8월 6일

Docker

목록 보기
10/34

Docker은 컨테이너를 통해 애플리케이션과 애플리케이션의 의존성이 담긴 코드를 OS로부터 분리합니다.
그렇기 때문에 컨테이너는 일시적인 것이 기본입니다.
이 말은 컨테이너에서 저장된 데이터는 컨테이너가 종료됨가 동시에 사라진다는 것입니다.
이 글에서는 어떻게 컨테이너에서 저장한 데이터를 영구적으로 저장할 수 있는지 알아보겠습니다.

Ephemeral FS

Ephemeral FS은 임시적인 파일 시스템을 말합니다.
Ephemeral FS는 컨테이너가 멈추거나 종료되면 사라집니다.
그렇기 때문에 컨테이너의 데이터를 영구적으로 저장하기 위해서는 방법을 찾아야 합니다.

아래는 Ephemeral FS의 단점을 극복하는 방법에 대해 적어보겠습니다.

  1. Volumes
    Docker는 Volumes라는 독립적인 스토리지 공간을 관리합니다.
    이 스토리지는 Container의 파일 시스템 밖에서 저장됩니다.
    이를 통해 데이터를 영구적으로 저장할 수 있습니다.

  2. Bind mounts
    호스트의 디렉토리나 파일을 컨테이너와 매핑합니다.
    이를 통해 호스트의 스토리지는 컨테이너와 공유할 수 있습니다.

  3. tmpfs mounts
    인메모리 스토리지로 컨테이너의 생명주기와 함께하는 스토리지입니다.

Volume Mounts

Creating a Volume

docker volume create my-volume

Inspecting a Volume

docker volume inspect my-volume

Mounting a Volume in a Container

docker run -d -v my-volume:/data your-image
//OR
docker run -d --mount source=my-volume,destination=/data your-image 

Sharing Volumes Between Containers

docker run -d -v my-volume:/data1 image1
docker run -d -v my-volume:/data2 image2

Removing a Volume

docker volume rm my-volume
profile
기록으로 흔적을 남깁니다.

0개의 댓글