本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 秒才能提取到網路。