[Docker] Named Volume 이란 무엇인가? 사용 방법과 특징 정리

2025. 1. 27. 07:45·Docker
반응형

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


'Docker' 카테고리의 다른 글
  • [Docker] .dockerignore 사용해 컨테이너에 복사되지 말아야 할 파일 정의하기
  • [Docker] Bind Mount 통해 호스트 머신의 경로를 컨테이너 경로와 연결하기
  • [Docker] Anonymous Volume(익명 볼륨) 한 번에 정리하기
  • Docker Hub에 이미지 업로드 하기
심플코드
심플코드
프로그래밍을 어렵지 않게 풀어서 설명하는 기술 블로그
    반응형
  • 심플코드
    심플코드
    심플코드
  • 전체
    오늘
    어제
    • 분류 전체보기 (96)
      • 안드로이드를 위한 Coroutines (2)
      • Unit Testing (19)
      • GitHub Actions (0)
      • 공식 문서 번역 (35)
        • Coroutines 공식 문서 (35)
      • 알고리즘 (7)
        • Kotlin 자료구조 (0)
        • 알고리즘 (7)
        • Kotlin으로 구현하는 자료구조 (0)
      • 코딩 테스트 (0)
      • Deep Learning (0)
      • Machine Learning Math (17)
        • Linear Algebra (17)
      • ML (0)
      • Docker (15)
      • Kubernetes (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 코틀린 코루틴의 정석 책 출간 소식
  • 인기 글

  • 태그

    코루틴 Flow
    Coroutines Context
    TensorFlow
    unit test
    도커
    mockito
    coroutine
    junit
    numpy
    Coroutines Flow
    코루틴
    Machine Learning
    Docker
    Kotlin
    unit testing
    컨테이너
    코루틴 채널
    pytorch
    Coroutines Channel
    Coroutines
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
심플코드
[Docker] Named Volume 이란 무엇인가? 사용 방법과 특징 정리
상단으로

티스토리툴바