docker volume create
| 描述 | 建立一個卷 |
|---|---|
| 用法 | docker volume create [OPTIONS] [VOLUME] |
描述
建立一個新的卷,容器可以使用它來儲存資料。如果未指定名稱,Docker 將生成一個隨機名稱。
選項
| 選項 | 預設值 | 描述 |
|---|---|---|
--availability | active | API 1.42+ Swarm 叢集卷可用性(active、pause、drain) |
-d, --driver | local | 指定卷驅動程式名稱 |
--group | API 1.42+ Swarm 叢集卷組(叢集卷) | |
--label | 為卷設定元資料 | |
--limit-bytes | API 1.42+ Swarm 叢集卷的最小大小(位元組) | |
-o, --opt | 設定驅動程式特定選項 | |
--required-bytes | API 1.42+ Swarm 叢集卷的最大大小(位元組) | |
--scope | single | API 1.42+ Swarm 叢集卷訪問範圍(single、multi) |
--secret | API 1.42+ Swarm 叢集卷金鑰 | |
--sharing | none | API 1.42+ Swarm 叢集卷訪問共享(none、readonly、onewriter、all) |
--topology-preferred | API 1.42+ Swarm 叢集卷首選拓撲 | |
--topology-required | API 1.42+ Swarm 叢集卷必須可訪問的拓撲 | |
--type | block | API 1.42+ Swarm 叢集卷訪問型別(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 上,local 驅動程式接受類似於 Linux mount 命令的選項。您可以透過多次傳遞 --opt 標誌來提供多個選項。一些 mount 選項(例如 o 選項)可以接受逗號分隔的選項列表。有關可用掛載選項的完整列表,請參閱此處。
例如,以下命令建立一個名為 foo 的 tmpfs 卷,大小為 100 兆位元組,uid 為 1000。
$ 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
另一個使用 nfs 從 192.168.1.1 以 rw 模式掛載 /path/to/dir 的示例
$ docker volume create --driver local \
--opt type=nfs \
--opt o=addr=192.168.1.1,rw \
--opt device=:/path/to/dir \
foo