
Este es el segundo artículo de una serie de artículos, en él se discutirán las limitaciones al descargar imágenes de contenedores.
En Hemos examinado en detalle las imágenes almacenadas en Docker Hub, el mayor registro de imágenes de contenedores. Escribimos sobre esto para que usted entienda mejor cómo nuestros términos de servicio actualizados afectarán a los equipos de desarrollo que utilizan Docker Hub para gestionar imágenes de contenedores y tuberías CICD.
Las limitaciones sobre la frecuencia de descarga se anunciaron anteriormente en nuestros . Examinaremos más a fondo las limitaciones de frecuencia que entrarán en vigor el 1 de noviembre de 2020:
Plan gratuito, usuarios anónimos: 100 descargas cada 6 horas
Plan gratuito, usuarios autenticados: 200 descargas cada 6 horas
Plan Pro: sin limitaciones
Plan Team: sin limitaciones
La frecuencia de descargas desde Docker se define como el número de solicitudes de manifiestos a Docker Hub. Las limitaciones de frecuencia de descarga de imágenes dependen del tipo de cuenta que solicita la imagen, y no del tipo de cuenta del propietario de la imagen. Para los usuarios anónimos (no autenticados), la frecuencia de descarga está vinculada a la dirección IP.
N.B. Obtendrá más detalles y mejores prácticas . Además, puede realizarlo cuando le convenga, tanto en tiempo como en estado de ánimo.
Recibimos preguntas de clientes y de la comunidad sobre las capas de las imágenes de contenedores. No consideramos las capas de la imagen al restringir la frecuencia de descarga, ya que limitamos la descarga de manifiestos, y el número de capas (solicitudes de blob) actualmente no está limitado. Este cambio se basa en los comentarios de la comunidad para hacerlo más amigable para los usuarios, de modo que no tengan que contar las capas en cada imagen que utilicen.
Análisis detallado de las frecuencias de descarga de imágenes de Docker Hub
Hemos pasado mucho tiempo analizando la descarga de imágenes desde Docker Hub para determinar la causa de la limitación de velocidad y cómo exactamente se debe gestionar. Lo que hemos observado confirma que, de hecho, todos los usuarios descargan imágenes a una velocidad predecible para flujos de trabajo típicos. Sin embargo, hay una influencia notable de un pequeño número de usuarios anónimos; por ejemplo, aproximadamente el 30% de todas las descargas provienen solo del 1% de usuarios anónimos.

Las nuevas limitaciones se basan en este análisis, por lo que la mayoría de nuestros usuarios no se verán afectados. Estas limitaciones están diseñadas para reflejar el uso habitual por parte de los desarrolladores: exploración de Docker, desarrollo de código, creación de imágenes, etc.
Asistencia a los desarrolladores para una mejor comprensión de la limitación de la frecuencia de descargas
Ahora que entendemos el impacto y dónde deben estar los límites, necesitamos definir las condiciones técnicas para el funcionamiento de estas limitaciones. Limitar la descarga de imágenes desde el registro de Docker es bastante complicado. No encontrará una API para las descargas en la descripción del registro; simplemente no existe. De hecho, descargar una imagen consiste en una combinación de solicitudes de manifiesto y blobs en la API, y se ejecutan de manera diferente, dependiendo del estado del cliente y de la imagen solicitada.
Por ejemplo, si ya tiene una imagen, Docker Engine enviará una solicitud de manifiesto, entenderá que ya tiene todas las capas necesarias según el manifiesto recibido y se detendrá. Por otro lado, si está descargando una imagen que admite múltiples arquitecturas, la solicitud de manifiesto devolverá una lista de manifiestos de imágenes para cada arquitectura compatible. Luego, Docker Engine enviará otra solicitud de manifiesto para la arquitectura específica en la que está funcionando, recibiendo en respuesta una lista de todas las capas de la imagen. Posteriormente, solicitará cada capa que falte (blob).
N.B. Este tema se aborda de manera más amplia en , donde exploraremos todas sus herramientas: desde las abstracciones básicas hasta las configuraciones de red, pasando por las sutilezas del trabajo con diferentes sistemas operativos y lenguajes de programación. Se familiarizará con la tecnología y entenderá dónde y cómo utilizar mejor Docker.
Parece que la descarga de una imagen es en realidad una o dos solicitudes de manifiesto, además de un número que va de cero a infinito: solicitudes de capas (blob). Históricamente, Docker ha rastreado la frecuencia de descarga en función de las capas, ya que esto está más relacionado con el uso del ancho de banda. Sin embargo, hemos escuchado a la comunidad, ya que esto es más complicado, ya que es necesario rastrear el número de capas solicitadas, lo que podría llevar a ignorar las mejores prácticas en el trabajo con Dockerfile, así como ser intuitivamente menos comprensible para los usuarios que simplemente desean trabajar con el registro, sin profundizar demasiado en los detalles.
Por lo tanto, limitamos el número de solicitudes basadas en las solicitudes de manifiestos. Esto está directamente relacionado con la descarga de imágenes, lo que resulta fácil de entender para los usuarios. Sin embargo, hay un pequeño matiz: si intentas descargar una imagen que ya posees, la solicitud aún será contabilizada, incluso si no descargas las capas. En cualquier caso, esperamos que este método de limitación de la frecuencia de descarga sea tanto justo como conveniente para los usuarios.
Esperamos sus comentarios
Estaremos monitoreando las limitaciones y realizando los ajustes correspondientes basados en los patrones de uso típicos, para asegurarnos de que las restricciones sean adecuadas para cada tipo de usuario, y en particular, nos esforzaremos por nunca interferir con el trabajo de los desarrolladores.
Estén atentos a los mensajes en las próximas semanas, habrá otro artículo sobre la configuración de CI y sistemas de producción en el contexto de estos cambios.
Finalmente, como parte del apoyo a la comunidad de desarrolladores de software de código abierto, hasta el 1 de noviembre ofreceremos nuevos planes tarifarios para proyectos de código abierto. Para solicitarlo, debe completar un formulario .
Para obtener más información sobre los últimos cambios en los términos de servicio, comuníquese con .
Aquellos que necesitan aumentar los límites de frecuencia de descarga de imágenes, Docker ofrece descargas ilimitadas de imágenes como una característica . Como siempre, esperaremos sus comentarios y preguntas .
Fuente: habr.com
