EC2 的容器映像提取行為和 Amazon ECS 的外部啟動類型 - Amazon Elastic Container Service

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

EC2 的容器映像提取行為和 Amazon ECS 的外部啟動類型

根據基礎容器映像,容器啟動所需的時間會有所不同。例如,比起各自的精簡版本 (Debian-slim、Ubuntu-slim 和 Amazon1-slim) 或較小的基礎映像 (Alpine),容器中執行的更多服務可能需要更長的時間才能啟動。

當 Amazon ECS 代理程式啟動任務時,它會從其遠端登錄檔提取 Docker 映像,然後快取本機複本。當您針對應用程式的每個版本使用新的映像標籤時,此行為是不必要的。

ECS_IMAGE_PULL_BEHAVIOR 代理程式參數會決定映像提取行為。以下是可用的選項:

  • ECS_IMAGE_PULL_BEHAVIOR: default

    影像會從遠端提取。如果提取失敗,則會使用執行個體中的快取映像。

  • ECS_IMAGE_PULL_BEHAVIOR: always

    影像會從遠端提取。如果提取失敗,任務會失敗。

若要加速部署,請將 Amazon ECS 代理程式參數設定為下列其中一個值:

  • ECS_IMAGE_PULL_BEHAVIOR: once

    只有在相同容器執行個體上的先前任務未提取映像,或自動映像清除程序已移除快取的映像時,才會從遠端提取映像。否則,將使用執行個體上的快取映像,這可確保不會發生非必要的映像提取。

  • ECS_IMAGE_PULL_BEHAVIOR: prefer-cached

    如果沒有快取的映像,則會從遠端提取映像。否則,將使用執行個體上的快取映像,容器的自動映像清除已關閉,以確保快取的映像不會移除。

ECS_IMAGE_PULL_BEHAVIOR 參數設定為上述任一值可節省時間,因為 Amazon ECS 代理程式會使用現有的下載映像。對於較大的 Docker 映像,下載時間可能需要 10-20 秒才能提取到網路。