在 Amazon ECS 任務定義中指定 Docker 磁碟區 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon ECS 任務定義中指定 Docker 磁碟區

您必須先在任務定義中指定磁碟區和掛載點組態,您的容器才可以使用資料磁碟區。本節說明容器的磁碟區組態。對於使用 Docker 磁碟區的任務,指定 dockerVolumeConfiguration。對於使用綁定掛載主機磁碟區的任務,指定 host 和選用的 sourcePath

以下任務定義 JSON 說明容器 volumesmountPoints 物件的語法。

{ "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