docker volume create

描述建立一個卷
用法docker volume create [OPTIONS] [VOLUME]

描述

建立一個新的卷,容器可以使用它來儲存資料。如果未指定名稱,Docker 將生成一個隨機名稱。

選項

選項預設值描述
--availabilityactiveAPI 1.42+ Swarm 叢集卷可用性(activepausedrain
-d, --driverlocal指定卷驅動程式名稱
--groupAPI 1.42+ Swarm 叢集卷組(叢集卷)
--label為卷設定元資料
--limit-bytesAPI 1.42+ Swarm 叢集卷的最小大小(位元組)
-o, --opt設定驅動程式特定選項
--required-bytesAPI 1.42+ Swarm 叢集卷的最大大小(位元組)
--scopesingleAPI 1.42+ Swarm 叢集卷訪問範圍(singlemulti
--secretAPI 1.42+ Swarm 叢集卷金鑰
--sharingnoneAPI 1.42+ Swarm 叢集卷訪問共享(nonereadonlyonewriterall
--topology-preferredAPI 1.42+ Swarm 叢集卷首選拓撲
--topology-requiredAPI 1.42+ Swarm 叢集卷必須可訪問的拓撲
--typeblockAPI 1.42+ Swarm 叢集卷訪問型別(mountblock

示例

建立卷並配置容器使用它

$ 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 選項)可以接受逗號分隔的選項列表。有關可用掛載選項的完整列表,請參閱此處

例如,以下命令建立一個名為 footmpfs 卷,大小為 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

另一個使用 nfs192.168.1.1rw 模式掛載 /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