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