Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Optimización del rendimiento en Amazon ECR
Puede utilizar la siguiente información sobre las configuraciones y estrategias para optimizar el rendimiento al utilizar Amazon ECR.
- Usar Docker 1.10 o versiones posteriores para poder realizar cargas en capas simultáneas
-
Las imágenes de Docker se componen de capas, que son etapas intermedias de compilación de la imagen. Cada línea de un archivo Dockerfile genera una nueva capa. Al utilizar Docker 1.10 o versiones posteriores, Docker envía de forma predeterminada tantas capas como cargas simultáneas sea posible enviar a Amazon ECR, lo que da como resultado tiempos de carga más rápidos.
- Usar una imagen base más pequeña
-
Las imágenes predeterminadas disponibles en Docker Hub pueden contener varias dependencias que no son necesarias para la aplicación. Plantéese utilizar una imagen más pequeña creada y mantenida por otros miembros de la comunidad Docker o cree su propia imagen base a partir de la imagen de prueba mínima de Docker. Para obtener más información, consulte Create a base image
en la documentación de Docker. - Sitúe las dependencias que menos cambian en la primera parte del archivo Dockerfile
-
Docker almacena capas en caché, lo que incrementa la velocidad de compilación. Si una capa no ha cambiado desde la última compilación, Docker recurre a la versión en caché en lugar de compilarla de nuevo. Sin embargo, cada capa depende de las que le anteceden. Si una capa cambia, Docker compila de nuevo no solo esa capa, sino también las que le siguen.
Para reducir al mínimo el tiempo necesario para compilar de nuevo un archivo Docker y volver a cargar las capas, plantéese situar las dependencias que cambian con menos frecuencia en el archivo Docker. Sitúe las dependencias que cambian rápidamente (como, por ejemplo, el código fuente de la aplicación) más adelante en la pila.
- Encadene los comandos para evitar almacenar archivos innecesarios.
-
Los archivos intermedios que se crean en una capa siguen formando parte de ella aunque se eliminen en una capa posterior. Considere el siguiente ejemplo:
WORKDIR /tmp RUN wget http://example.com/software.tar.gz RUN wget tar -xvf software.tar.gz RUN mv software/binary /opt/bin/myapp RUN rm software.tar.gz
En este ejemplo, las capas creadas por el primer y el segundo comando RUN contienen el archivo original .tar.gz y su contenido descomprimido. Esto ocurre a pesar de que el cuarto comando RUN elimina el archivo .tar.gz. Estos comandos se pueden encadenar en una única instrucción RUN para asegurarse de que los archivos innecesarios no formen parte de la imagen final de Docker:
WORKDIR /tmp RUN wget http://example.com/software.tar.gz &&\ wget tar -xvf software.tar.gz &&\ mv software/binary /opt/bin/myapp &&\ rm software.tar.gz
- Usar el punto de enlace regional más cercano
-
Para reducir la latencia al extraer imágenes de Amazon ECR, utilice el punto de enlace regional más cercano a la zona de ejecución de la aplicación. Si tu aplicación se ejecuta en una EC2 instancia de Amazon, puedes usar el siguiente código de shell para obtener la región de la zona de disponibilidad de la instancia:
REGION=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone |\ sed -n 's/\(\d*\)[a-zA-Z]*$/\1/p')
La región se puede pasar a AWS CLI los comandos mediante el --region parámetro, o se puede establecer como la región predeterminada para un perfil mediante el aws configure comando. También puedes configurar la región al realizar llamadas con el AWS SDK. Para obtener más información, consulte la documentación del SDK de su lenguaje de programación específico.