Named Volume 이란?
Named Volume은 사용자가 직접 이름을 지정해 관리하는 Docker 볼륨이다. 이 볼륨은 데이터를 영구적으로 저장하는 데 사용되며, 익명 볼륨과 달리 컨테이너의 수명과 독립적이다. 이름이 지정되어 있기 때문에 여러 컨테이너에서 쉽게 공유하거나 참조할 수 있다.
Named Volume 생성하고 사용하기
Named Volume 생성하기
Named Volume은 다음 명령어를 통해 생성할 수 있다.
docker volume create [Volume Name]
예를 들어 다음과 같이 "docker volume create postvolume" 명령어를 실행해 postvolume이라는 이름을 가진 Named Volume을 생성할 수 있다.
Named Volume 사용하기
컨테이너를 만들 때 Named Volume을 사용하기 위해서는 -v [Named Volume]:[컨테이너 디렉토리] 옵션을 넣어 volume과 컨테이너의 디렉토리를 연결해주면 된다.
docker run -p 8080:8080 -d --name postapp --rm -v [Named Volume]:[컨테이너 디렉토리] volume:1.0.1
예를 들어 다음과 같이 사용하면 앞서 만든 postvolume을 /app/post 경로에 연결시킬 수 있다.
docker run -p 8080:8080 -d --name postapp --rm -v postvolume:/app/posts volume:1.0.1
Named Volume에 데이터 넣기
이제 다음 요청으로 Named Volume에 데이터를 넣어보자.
### Make Post Request
POST http://localhost:8080/post
Content-Type: application/json
{
"title": "My Second Post",
"content": "This is my second post"
}
그러면 다음과 같이 b9a6aeff로 시작하는 아이디를 가진 포스트가 생성된 것을 볼 수 있다.
이제 docker desktop에서 postVolume을 확인하면 다음과 같이 포스트가 생성된 것을 확인할 수 있다.
Named Volume 유지 확인하기
앞서 우리가 "Named Volume 사용하기" 섹션에서 docker run을 할 때 --rm 옵션을 넣은 것을 기억해보자. 다음은 우리가 컨테이너를 실행할 때 사용한 스크립트이다.
docker run -p 8080:8080 -d --name postapp --rm -v postvolume:/app/posts volume:1.0.1
이제 이 postapp을 stop 하면, 볼륨은 유지되고(volume ls) 컨테이너는 지워진 것(docker ps -a)을 확인할 수 있다.
Named Volume의 주요 특징
영구성이 있음
컨테이너가 삭제돼도 Named Volume에 저장된 데이터는 삭제되지 않는다. 따라서 중요한 데이터를 저장하고 관리하는 데 적합하다.
이름 기반 참조가 가능함
사용자가 지정한 이름을 통해 볼륨을 쉽게 참조하고 관리할 수 있다. 앞에서 봤듯이 내부 경로랑 매핑할 때 단순히 볼륨 이름을 앞에 넣어주기만 하면 된다.
컨테이너 간 데이터 공유 시 사용 가능
동일한 Named Volume을 여러 컨테이너에 마운트 해서 같은 데이터를 공유할 수 있다.
'Docker' 카테고리의 다른 글
[Docker] .dockerignore 사용해 컨테이너에 복사되지 말아야 할 파일 정의하기 (0) | 2025.01.29 |
---|---|
[Docker] Bind Mount 통해 호스트 머신의 경로를 컨테이너 경로와 연결하기 (0) | 2025.01.28 |
[Docker] Anonymous Volume(익명 볼륨) 한 번에 정리하기 (0) | 2025.01.26 |
Docker Hub에 이미지 업로드 하기 (0) | 2025.01.25 |
[Docker] 이미지 목록 확인하고 제거하는 방법 한 번에 정리하기 (0) | 2025.01.24 |