本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Amazon ECS 使用綁定掛載
透過綁定掛載,主機上的檔案或目錄,例如 Amazon EC2 執行個體,會掛載到容器中。在 Fargate 和 Amazon EC2 執行個體上託管的任務支援綁定掛載。綁定掛載會繫結至使用它們的容器生命週期。使用綁定掛載的所有容器停止之後,例如當任務停止時,資料就會被移除。對於託管在 Amazon EC2 執行個體上的任務,您可以透過在任務定義中指定 host
和選用sourcePath
值,將資料繫結至主機 Amazon EC2 執行個體的生命週期。如需詳細資訊,請參閱 Docker 文件中的繫結掛
以下是綁定掛載的常用案例。
-
若要提供空白的資料磁碟區以便在一個或多個容器中掛載。
-
若要在一個或多個容器中掛載主機資料磁碟區。
-
若要與相同任務中的其他容器共用來源容器的資料磁碟區。
-
若要將 Dockerfile 中的路徑及其內容公開給一個或多個容器。
使用綁定掛載時的考量
使用綁定掛載時,請考量下列事項。
-
根據預設, AWS Fargate 使用平台版本
1.4.0
或更新版本 (Linux)1.0.0
或更新版本 (Windows) 託管在 上的任務,會接收至少 20 GiB 的暫時性儲存以進行綁定掛載。您可以在任務定義中指定ephemeralStorage
參數,將暫時性儲存的總量增加到最高 200 GiB。 -
若要在執行任務時將 Dockerfile 中的檔案公開至資料磁碟區,Amazon ECS 資料平面會尋找
VOLUME
指令。如果在VOLUME
指令中指定的絕對路徑與在任務定義中指定的containerPath
相同,則VOLUME
指令路徑中的資料會複製到資料磁碟區。在下列 Dockerfile 範例中,/var/log/exported
目錄中名為examplefile
的檔案會寫入主機,然後掛載在容器內。FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN mkdir -p
/var/log/exported
RUN touch/var/log/exported/examplefile
VOLUME ["/var/log/exported
"]根據預設,磁碟區許可設定為
0755
和擁有者設定為root
。您可以在 Dockerfile 中自訂這些許可。在下列範例中,將目錄的擁有者設定為node
。FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN yum install -y shadow-utils && yum clean all RUN useradd
node
RUN mkdir -p /var/log/exported && chownnode
:node
/var/log/exported RUN touch /var/log/exported/examplefile USERnode
VOLUME ["/var/log/exported"] -
對於在 Amazon EC2 執行個體上託管的任務,當
host
和sourcePath
值未指定時,Docker 常駐程式會為您管理綁定掛載。當沒有任何容器參考此綁定掛載時,Amazon ECS 容器代理程式任務清除服務最終會予以刪除。根據預設,這會在容器退出的 3 小時後發生。不過,您可以使用ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION
代理程式變數設定此持續時間。如需詳細資訊,請參閱Amazon ECS 容器代理程式組態。如果您需要此資料的保留時間超過容器的生命週期,請為綁定掛載指定sourcePath
值。