建立 Docker 磁碟區
說明 | 建立磁碟區 |
---|---|
用法 | docker volume create [選項] [磁碟區] |
說明
建立一個新的磁碟區,容器可以使用並在其中儲存資料。如果未指定名稱,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
選項)可以採用以逗號分隔的選項清單。完整的可用掛載選項清單可以在這裡找到。
例如,以下建立一個大小為 100 MB 且 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
另一個使用 nfs
以 rw
模式從 192.168.1.1
掛載 /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