docker volume create

docker volume create

docker volume create는 컨테이너가 사용하고 데이터를 저장할 수 있는 새 볼륨을 만드는 명령이에요.

출처: 문서

본문

docker volume create는 컨테이너가 소비하고 데이터를 저장할 새 볼륨을 만들어요. 이름을 지정하지 않으면 Docker가 임의의 이름을 생성해요.

docker volume create [OPTIONS] [VOLUME]

지원하는 옵션은 다음과 같아요.

옵션 기본값 설명
--availability active API 1.42+ 스웜 클러스터 볼륨 가용성이에요 (active, pause, drain).
-d, --driver local 볼륨 드라이버 이름을 지정해요.
--group API 1.42+ 스웜 클러스터 볼륨 그룹이에요.
--label 볼륨의 메타데이터를 설정해요.
--limit-bytes API 1.42+ 스웜 클러스터 볼륨의 최소 크기(바이트)예요.
-o, --opt 드라이버별 옵션을 설정해요.
--required-bytes API 1.42+ 스웜 클러스터 볼륨의 최대 크기(바이트)예요.
--scope single API 1.42+ 스웜 클러스터 볼륨 접근 범위예요 (single, multi).
--secret API 1.42+ 스웜 클러스터 볼륨 시크릿이에요.
--sharing none API 1.42+ 스웜 클러스터 볼륨 접근 공유 방식이에요 (none, readonly, onewriter, all).
--topology-preferred API 1.42+ 스웜 선호하는 클러스터 볼륨 토폴로지예요.
--topology-required API 1.42+ 스웜 반드시 접근 가능해야 하는 클러스터 볼륨 토폴로지예요.
--type block API 1.42+ 스웜 클러스터 볼륨 접근 유형이에요 (mount, block).

예시

볼륨을 만들고 컨테이너가 사용하도록 설정하는 예시예요.

$ docker volume create hello

hello

$ docker run -d -v hello:/world busybox ls /world

마운트는 컨테이너의 /world 디렉터리 안에 생성돼요. Docker는 컨테이너 안 마운트 지점의 상대 경로를 지원하지 않아요.

여러 컨테이너가 같은 볼륨을 사용할 수 있어요. 두 컨테이너가 공유 데이터에 접근해야 할 때(예: 하나는 쓰고 다른 하나는 읽는 경우) 유용해요.

볼륨 이름은 드라이버 간에 고유해야 해요. 즉 같은 이름을 두 드라이버에서 쓸 수 없어요. 같은 이름으로 두 볼륨을 만들려 하면 오류가 나요.

A volume named  "hello"  already exists with the "some-other" driver. Choose a different volume name.

현재 드라이버에서 이미 사용 중인 볼륨 이름을 지정하면 Docker는 기존 볼륨을 재사용하려는 것으로 보고 오류를 내지 않아요.

드라이버별 옵션 (-o, --opt)

일부 볼륨 드라이버는 볼륨 생성 커스터마이즈용 옵션을 받을 수 있어요. -o 또는 --opt 플래그로 드라이버 옵션을 전달해요.

$ docker volume create --driver fake \
    --opt tardis=blue \
    --opt timey=wimey \
    foo

이 옵션들은 볼륨 드라이버에 직접 전달돼요. 드라이버마다 하는 일이 다를 수 있고 아무 일도 안 할 수도 있어요.

내장 local 드라이버는 Windows에서 옵션을 받지 않아요. Linux와 Docker Desktop에서는 Linux mount 명령과 비슷한 옵션을 받아요. --opt 플래그를 여러 번 넘겨 여러 옵션을 줄 수 있어요.

예를 들어 크기 100MB, uid 1000인 tmpfs 볼륨 foo를 만드는 예시예요.

$ docker volume create --driver local \
    --opt type=tmpfs \
    --opt device=tmpfs \
    --opt o=size=100m,uid=1000 \
    foo

btrfs를 사용하는 예시예요.

$ docker volume create --driver local \
    --opt type=btrfs \
    --opt device=/dev/sda2 \
    foo

192.168.1.1에서 /path/to/dirrw 모드로 마운트하는 nfs 예시예요.

$ docker volume create --driver local \
    --opt type=nfs \
    --opt o=addr=192.168.1.1,rw \
    --opt device=:/path/to/dir \
    foo

더 알아보기