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/dir을 rw 모드로 마운트하는 nfs 예시예요.
$ docker volume create --driver local \
--opt type=nfs \
--opt o=addr=192.168.1.1,rw \
--opt device=:/path/to/dir \
foo