本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon ECS 任務定義中指定 Docker 磁碟區
您必須先在任務定義中指定磁碟區和掛載點組態,您的容器才可以使用資料磁碟區。本節說明容器的磁碟區組態。對於使用 Docker 磁碟區的任務,指定 dockerVolumeConfiguration。對於使用綁定掛載主機磁碟區的任務,指定 host 和選用的 sourcePath。
以下任務定義 JSON 說明容器 volumes 和 mountPoints 物件的語法。
{ "containerDefinitions": [ { "mountPoints": [ { "sourceVolume": "string", "containerPath": "/path/to/mount_volume", "readOnly": boolean } ] } ], "volumes": [ { "name": "string", "dockerVolumeConfiguration": { "scope": "string", "autoprovision": boolean, "driver": "string", "driverOpts": { "key": "value" }, "labels": { "key": "value" } } } ] }
name-
類型:字串
必要:否
磁碟區名稱。最多可輸入 255 個字母 (大小寫)、數字、連字號 (
-) 與底線 (_)。在容器定義mountPoints物件的sourceVolume參數中參考此名稱。 dockerVolumeConfiguration-
類型:DockerVolumeConfiguration 物件
必要:否
此參數只有使用 Docker 磁碟區時才會指定。只有在 EC2 執行個體上執行任務時,才支援 Docker 磁碟區。Windows 容器只支援使用
local驅動程式。若要使用綁定掛載,請指定host。scope-
類型:字串
有效值:
task|shared必要:否
決定生命週期的 Docker 磁碟區範圍。範圍受限於
task的 Docker 磁碟區,會在任務啟動時自動佈建,以及在任務停止時銷毀。範圍為shared的 Docker 磁碟區會在任務停止之後保留。 autoprovision-
類型:布林值
預設值:
false必要:否
若此數值為
true,Docker 磁碟區便得以建立 (若它尚不存在)。此欄位只有在scope的值為shared才會使用。如果scope的值為task,則此參數必須省略。 driver-
類型:字串
必要:否
要使用的 Docker 磁碟區驅動程式。驅動程式值必須符合 Docker 提供的驅動程式名稱,因為此名稱會用於任務置放。如果使用 Docker 外掛程式 CLI 安裝驅動程式,則使用
docker plugin ls從容器執行個體擷取驅動程式名稱。如果使用其他方法安裝驅動程式,則使用 Docker 外掛程式探索來擷取驅動程式名稱。 driverOpts-
類型:字串
必要:否
一組需傳遞的、專用於 Docker 驅動程式的選項映射。此參數會映射至 Docker 中「Create a volume」區段的
DriverOpts。 labels-
類型:字串
必要:否
自訂中繼資料,新增到您的 Docker 磁碟區。
mountPoints-
類型:物件陣列
必要:否
容器中資料磁碟區的掛載點。此參數會映射至 Docker API 中 create-container 的
Volumes,以及 docker run 的--volume選項。Windows 容器可在
$env:ProgramData所在的相同磁碟上掛載整個目錄。Windows 容器無法在不同的磁碟機上掛載目錄,且掛載點不能跨磁碟機使用。您必須指定掛載點,將 Amazon EBS 磁碟區直接連接至 Amazon ECS 任務。sourceVolume-
類型:字串
必要:是 (當使用
mountPoints時)要掛載的磁碟區名稱。
containerPath-
類型:字串
必要:是 (當使用
mountPoints時)掛載磁碟區之容器中的路徑。
readOnly-
類型:布林值
必要:否
如果此數值為
true,容器擁有磁碟區的唯讀存取權。如果此值為false,則容器可寫入磁碟區。預設值為false。對於在執行 Windows 作業系統之 EC2 執行個體上執行的任務,將該值保留為預設值
false。