Opciones para sortear los nuevos límites de Docker Hub
En este artículo, te voy a hablar sobre qué cosas que podemos hacer para adaptarnos a los nuevos límites de pulls de Docker Hub.
Como seguramente ya sabes o si recién te estás enterado, Docker Hub estableció límites en la cantidad de pulls que se pueden hacer en un periodo de tiempo.
Los pulls son las descargas de imagenes que hacemos cada vez que se hace un...
$ docker pull image:tag
O (Si ya tienes descargada la imagen, no cuenta).
$ docker run ... image:tag
Los límites son los siguientes:
- Usuario no autenticado: 100 pulls cada seis horas. Esto se basa en IP, así que es más grave la situación ya que si tenés una salida a Internet, esta cuota va a contar para todos.
- Usuario autenticado, con una cuenta de Docker Hub gratuita: 200 pulls cada seis horas.
Algo a tener en cuenta es que si la imagen tiene un solo layer, cuenta como un pull, pero si la misma tiene varias, cada layer es una descarga.
Supuestamente hay una forma para saber cuantos pulls nos quedan, seas usuario autenticado o no, pero no funciona, sobre esto mismo, Docker documentó lo siguiente pero no funciona, si haces las consultas a esas URL, no devuelve nada.
¿Entonces?
Nuestra propia registry
Entonces nos ponemos a ver qué es lo que podemos hacer para vivir en paz con estos límites. Una opción es montar tu propia Docker Registry, esta opción es muy viable si todo el tiempo están haciendo builds o tienen algún sistema de CI/CD que depende de una registry. Hable sobre esta opción en este artículo.
Limitar el funcionamiento de los auto-updaters
Las soluciones como Watchtower pueden destruir tu cupo en un rato, ya que chequea cada cinco minutos si hay una imagen nueva de tu contenedor y actualiza el mismo. La recomendación acá es parar con el uso de estas herramientas o bien, limitarlas en cuanto al periodo que hace el chequeo por actualizaciones.
En Portainer, nuestro CEO hablo sobre esto en este artículo y yo hablé sobre Watchtower en este otro:
La forma de alargar el tiempo de chequeo de actualizaciones y descargas, creo que es el approach más sensato para este escenario. Para poder hacerlo, solo debemos correr Watchtower de la siguiente manera:
$ docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WATCHTOWER_POLL_INTERVAL=43200 \
containrrr/watchtower
La variable de entorno "WATCHTOWER_POLL_INTERVAL=43200" lo que hace es que revisa si hay nuevas imágenes cada 12 horas y como debe especificarse en segundos, son 43200 segundos.
En mi caso, lo tengo configurado así y corre cada 12 horas, podemos comprobarlo haciendo un...
$ docker logs <id-contenedor-watchtower>
La terminal nos devolverá esto:
time="2020-11-05T13:59:18Z" level=info msg="Starting Watchtower and scheduling first run: 2020-11-06 01:59:18 +0000 UTC m=+43200.959644801"
Usar otras registries públicas
quay.io
Otra opción es usar otras registries, una de ellas es quay.io, nos podemos abrir una cuenta, autenticarnos y traer imágenes desde esa registry sin ningún problema. Si queremos hostear imagenes, ahí sí que debemos desembolsar.
Gitlab
La registry de Gitlab es excelente opción para hostear nuestras imágenes, sobre todo si los proyectos los manejamos ahí mismo:
Github
Ellos también tienen la suya, no la he probado para serles honestos, así que me pueden dejar un comentario sobre la registry de Github y me cuentan que tal.
AWS
El gigante de la nube anunció que iba a lanzar un servicio muy similar al que tiene Docker Hub, aún no se sabe mucho más de lo que anunciaron, así que será cuestión de esperar a que lo lancen para ver:
Para ir cerrando
Al usuario de a pie, por decirlo de alguna manera, esto no le afecta ya que no está actualizando o haciendo builds todo el tiempo usando las imágenes de Docker Hub
Al que si le afecta es al que usa esto de manera intensa por su trabajo, aunque si lo llevamos a ese plano, tampoco me parece descabellado hacerse de un plan y olvidarse de estos límites.
Veo a Docker Hub como una herramienta más de trabajo, así como lo es tu computadora, que compraste o un plan de telefonía celular que pagas todos los meses.
Pero bueno, estas son algunas opciones si es que no te agradaron estos cambios y crees que te puede afectar en el día a día.
Me gustaría leer comentarios sobre qué opinan y también sobre otras registries que conozcan para alojar imágenes de contenedores.