?
This document uses PHP Chinese website manual Release
Docker Engine卷插件使引擎部署能夠與Amazon EBS等外部存儲(chǔ)系統(tǒng)集成,并使數(shù)據(jù)卷在單個(gè)Docker主機(jī)的生命周期之后持續(xù)存在。有關(guān)更多信息,請(qǐng)參閱插件文檔。
如果用作v2插件體系結(jié)構(gòu)的一部分,則作為插件返回路徑一部分的掛載點(diǎn)必須安裝在PropagatedMount
插件配置(#26398)指定的目錄下1.12.0
將Status
字段添加到VolumeDriver.Get
響應(yīng)(#21006)
添加VolumeDriver.Capabilities
以獲得卷驅(qū)動(dòng)程序的功能(#22077)
添加VolumeDriver.Get
獲取有關(guān)卷的詳細(xì)信息(#16534)
添加VolumeDriver.List
列出驅(qū)動(dòng)程序擁有的所有卷(#16534)
對(duì)卷驅(qū)動(dòng)程序插件的初始支持(#14659)
要為容器提供對(duì)卷的訪問(wèn)權(quán)限,請(qǐng)?jiān)诿钪惺褂?code>--volume和--volume-driver
標(biāo)志docker container run
。--volume
(或-v
)標(biāo)志接受主機(jī)上卷名稱和路徑,以及--volume-driver
標(biāo)志接受驅(qū)動(dòng)程序類型。
$ docker volume create --driver=flocker volumename $ docker container run -it --volume volumename:/data busybox sh
--volume
--volume
(或-v
)標(biāo)志取值是在格式 <volume_name>:<mountpoint>
。值的兩部分用冒號(hào)(:
)分隔。
卷名稱是卷的可讀的名稱,不能以/
性格。它被稱為volume_name
在本主題的其余部分。
Mountpoint
是主機(jī)(v1)或插件(v2)中卷的可用路徑。
volumedriver
通過(guò)volumedriver
與volumename
聯(lián)合指定,您可以使用插件(如Flocker)來(lái)管理單個(gè)主機(jī)(例如EBS上的那些主機(jī))的外部卷。
容器創(chuàng)建endpoint(/containers/create
)接受允許指定驅(qū)動(dòng)程序名稱的VolumeDriver
類型字段string
。如果未指定,則默認(rèn)為"local"
(本地卷的默認(rèn)驅(qū)動(dòng)程序)。
如果插件將自己注冊(cè)為VolumeDriver
激活時(shí),它必須為主機(jī)文件系統(tǒng)上的可寫(xiě)路徑提供Docker守護(hù)程序。Docker守護(hù)進(jìn)程提供了這些路徑以供容器使用。Docker守護(hù)進(jìn)程通過(guò)將提供的路徑綁定到容器中來(lái)使這些卷可用。
注:音量插件應(yīng)該不將數(shù)據(jù)寫(xiě)入到
/var/lib/docker/
目錄,包括/var/lib/docker/volumes
。該/var/lib/docker/
目錄是為Docker保留的。
/VolumeDriver.Create
請(qǐng)求:
{ "Name": "volume_name", "Opts": {}}
指定插件用戶想要?jiǎng)?chuàng)建一個(gè)卷,給定用戶指定的卷名稱。該插件不需要在文件系統(tǒng)上實(shí)際顯示音量(直到Mount
被調(diào)用)。Opts
是從用戶請(qǐng)求傳遞的驅(qū)動(dòng)程序特定選項(xiàng)的映射。
響應(yīng):
{ "Err": ""}
如果發(fā)生錯(cuò)誤,則返回字符串錯(cuò)誤。
/VolumeDriver.Remove
請(qǐng)求:
{ "Name": "volume_name"}
從磁盤(pán)刪除指定的卷。當(dāng)用戶調(diào)用docker rm -v
刪除與容器關(guān)聯(lián)的卷時(shí),會(huì)發(fā)出此請(qǐng)求。
響應(yīng):
{ "Err": ""}
如果發(fā)生錯(cuò)誤,則返回字符串錯(cuò)誤。
/VolumeDriver.Mount
請(qǐng)求:
{ "Name": "volume_name", "ID": "b87d7442095999a92b65b3d9691e697b61713829cc0ffd1bb72e4ccd51aa4d6c"}
給定用戶指定的卷名,Docker需要該插件提供卷。Mount
在每個(gè)容器啟動(dòng)時(shí)調(diào)用一次。如果volume_name
多次請(qǐng)求相同,則插件可能需要跟蹤第一個(gè)安裝請(qǐng)求中的每個(gè)新的安裝請(qǐng)求和供應(yīng),并在最后一個(gè)相應(yīng)的卸載請(qǐng)求處取消配置。
ID
是請(qǐng)求掛載的呼叫者的唯一ID。
響應(yīng):
v1: { "Mountpoint": "/path/to/directory/on/host", "Err": "" }
v2:
{ "Mountpoint": "/path/under/PropagatedMount", "Err": "" }
Mountpoint
是主機(jī)(v1)或插件(v2)中卷的可用路徑。
Err
是空的或包含錯(cuò)誤字符串。
/VolumeDriver.Path
請(qǐng)求:
{ "Name": "volume_name"}
用給定的方式請(qǐng)求卷的路徑volume_name
。
響應(yīng):
v1: { "Mountpoin": "/path/to/directory/on/host", "Err": "" }
v2:
{ "Mountpoint": "/path/under/PropagatedMount", "Err": "" }
響應(yīng)主機(jī)(v1)上的路徑或插件(v2)中可用的卷的路徑,和/或發(fā)生錯(cuò)誤時(shí)的字符串錯(cuò)誤。
Mountpoint
是可選的。但是,如果沒(méi)有提供插件,稍后可能會(huì)再次查詢?cè)摬寮?/p>
/VolumeDriver.Unmount
請(qǐng)求:
{ "Name": "volume_name", "ID": "b87d7442095999a92b65b3d9691e697b61713829cc0ffd1bb72e4ccd51aa4d6c"}
Docker不再使用指定的卷。Unmount
每集裝箱停靠一次。插件可能會(huì)推斷出在這個(gè)時(shí)候取消配置音量是安全的。
ID
是請(qǐng)求掛載的調(diào)用者的唯一ID。
響應(yīng):
{ "Err": ""}
如果發(fā)生錯(cuò)誤,則返回字符串錯(cuò)誤。
/VolumeDriver.Get
請(qǐng)求:
{ "Name": "volume_name"}
獲取有關(guān)信息volume_name
。
響應(yīng):
v1: { "Volume": { "Name": "volume_name", "Mountpoint": "/path/to/directory/on/host", "Status": {} }, "Err": "" }
v2:
{ "Volume": { "Name": "volume_name", "Mountpoint": "/path/under/PropagatedMount", "Status": {} }, "Err": "" }
如果發(fā)生錯(cuò)誤,則返回字符串錯(cuò)誤。Mountpoint
并且Status
是可選的。
Request:
{}
獲取插件注冊(cè)的卷列表。
響應(yīng):
v1: { "Volumes": { "Name": "volume_name", "Mountpoint": "/path/to/directory/on/host" } , "Err": "" }
v2:
{ "Volumes": { "Name": "volume_name", "Mountpoint": "/path/under/PropagatedMount" } , "Err": "" }
如果發(fā)生錯(cuò)誤,則返回字符串錯(cuò)誤。Mountpoint
是可選的。
請(qǐng)求:
{}
獲取驅(qū)動(dòng)程序支持的功能列表。
司機(jī)不需要執(zhí)行Capabilities
。如果未實(shí)施,則使用默認(rèn)值。
響應(yīng):
{ "Capabilities": { "Scope": "global" }}
受支持的范圍是global
和local
。其他任何值都Scope
將被忽略,并被local
使用。Scope
允許集群管理者以不同的方式處理卷。例如,作用域的global
信號(hào)告訴集群管理器只需創(chuàng)建一次卷而不是在每臺(tái)Docker主機(jī)上創(chuàng)建卷。未來(lái)可能會(huì)增加更多功能。