El tiempo que tarda un contenedor en iniciarse varía según la imagen del contenedor subyacente. Por ejemplo, una imagen más pesada (versiones completas de Debian, Ubuntu y Amazon1/2) puede tardar más en iniciarse porque hay más servicios que se ejecutan en los contenedores en comparación con sus respectivas versiones compactas (Debian-slim, Ubuntu-slim y Amazon-SLIM) o imágenes base más pequeñas (Alpine).
Cuando el agente de Amazon ECS inicia una tarea, extrae la imagen de Docker de su registro remoto y, a continuación, guarda en caché una copia local. Cuando utiliza una etiqueta de imagen nueva para cada versión de la aplicación, este comportamiento no es necesario.
El parámetro del agente ECS_IMAGE_PULL_BEHAVIOR
determina el comportamiento de extracción de imágenes. Están disponibles las siguientes opciones:
-
ECS_IMAGE_PULL_BEHAVIOR
:default
La imagen se extraerá de forma remota. Si la extracción falla, se usa la imagen en caché de la instancia.
-
ECS_IMAGE_PULL_BEHAVIOR
:always
La imagen se extraerá de forma remota. Si no se puede extraer, se produce un error en la tarea.
Para acelerar la implementación, defina el parámetro del agente Amazon ECS en el siguiente valor:
-
ECS_IMAGE_PULL_BEHAVIOR
:once
La imagen se extrae de forma remota únicamente si no la extrajo una tarea anterior en la misma instancia de contenedor o si la imagen en caché ha sido eliminada por el proceso de limpieza automatizada de imágenes. De lo contrario, se usa la imagen almacenada en la caché de la instancia. De este modo, se garantiza que no se realizan extracciones de imágenes innecesarias.
-
ECS_IMAGE_PULL_BEHAVIOR
:prefer-cached
La imagen se extrae de forma remota si no hay ninguna imagen en caché. De lo contrario, se usa la imagen almacenada en la caché de la instancia. La limpieza automatizada de imágenes se deshabilita para el contenedor con el fin de garantizar que no se elimine la imagen en caché.
Si se establece el parámetro ECS_IMAGE_PULL_BEHAVIOR
en cualquiera de los valores anteriores, se puede ahorrar tiempo, ya que el agente de Amazon ECS utiliza la imagen descargada existente. En el caso de imágenes de Docker más grandes, el tiempo de descarga puede tardar entre 10 y 20 segundos en llegar a la red.