Habitualmente un repositorio es un area de almacenamiento (o espacio) en «la nube» que nos facilita el desarrollo y despliegue de sistemas y aplicaciones. Lo bueno de este tipo de soluciones es que muchas de ellas son gratuitas e incluso podemos privatizarlas.

Existen multitud de repositorios pero los mas conocidos en nuestro ámbito son GitHub, Docker Hub y Bitbucket.

Desarrollo basado en repositorios

Como vemos en la imagen anterior estos repositorios son muy utilizados en el desarrollo y esto está muy relacionado con DevOps y con Dockers. Con respecto a ello aquí hablaremos de Docker Hub.

Docker Hub es un servicio/repositorio (SaaS) en el que se pueden compartir imágenes y que nos proporciona lo siguiente:

  • Repositorio — > Para subir o bajar (Push vs Pull) imágenes de contenedores. Tanto públicas como privadas, verificadas (oficiales) por docker o no.
  • Imágenes certificadas –> proporcionadas (vendidas) por vendedores externos.
  • Build — > Creación de imágenes (build) automáticamente desde Github y Bitbucket y subirlas a Docker Hub.
  • Webhooks — > Ejecuta acciones (Triggers) después de una correcta subida para integrar Docker Hub con otros servicios. Como sabemos un API Es una interfaz de servicio realtime que permite a los desarrolladores y aplicaciones de terceros tomar data de un determinado sitio en internet.  Una API es una excelente forma de comunicar datos entre aplicaciones separadas. Pero ¿qué ocurre cuando en entornos realtime es necesario notificar cambios en determinado evento o elemento en otra aplicación? En este caso, una API sería extremadamente ineficiente. En su lugar, necesitas utilizar un Webhook. Un Webhook es un mecanismo que permite ser notificado cuando un evento ha ocurrido en tu aplicación o la de un tercero. Es básicamente una solicitud POST que se envía a una URL específica. Esa URL está configurada para recibir el cuerpo de la solicitud POST y procesarla de alguna manera. Por tanto, se podría decir que un API se utiliza para hacer preguntas directas y síncronas y un Webhook se utiliza para notificar cuando se producen ciertos eventos. En lugar de preguntar constantemente si algo ha cambiado, un webhook puede activarse y notificarnos automáticamente apenas se produzca el evento.

No obstante, podemos montar nuestro propio registro Docker (particular). Habitualmente se aconseja darse de alta en Docker Hub y acceder a través de Linux con “Docker login” (una vez instalado Docker CE o Enterprise) o descargar Docker Desktop para MAC/Windows y pode acceder a Docker Hub.

Para realizar esto (se explicará en otra entrada cómo subir y como descargar una imagen en este documento) es aconsejable seguir los pasos marcados en https://docs.docker.com/docker-hub/ y en https://docs.docker.com/docker-hub/repos/

Queremos dejar claro que una imagen “privada” solo se puede descargar (Pull) teniendo el usuario y la contraseña para ello (de la cuenta) y, además, esta imagen NO aparece en la búsqueda (Docker search). Docker Hub permite gratuitamente una imagen “privada”, para tener más debe de pagarse o tener el resto de manera “publica”.