docker-hub-conceptos-basicos

Qué es Docker Hub y cómo utilizarlo

  • 4 min

Docker Hub es el registro público principal de imágenes Docker. Es decir, un servicio donde podemos buscar, descargar, publicar y compartir imágenes de contenedores.

Hasta ahora hemos usado imágenes como nginx, mysql, ubuntu o node casi como si aparecieran por arte de comandos. Pero esas imágenes no salen de la nada. Normalmente Docker las descarga desde Docker Hub, que es el registro configurado por defecto.

Docker Hub no es el único registro que existe. También hay alternativas como GitHub Container Registry, GitLab Container Registry, Amazon ECR, Azure Container Registry o Google Artifact Registry.

Pero Docker Hub sigue siendo el punto de partida más habitual, sobre todo cuando estamos aprendiendo.

Pensad en Docker Hub como una especie de “repositorio de paquetes”, pero para imágenes de contenedor. Igual que en programación usamos NuGet, npm, PyPI o Maven Central, en Docker usamos un registro para distribuir imágenes ya construidas.

Qué es un registro de imágenes

Un registro de imágenes es un servidor que almacena imágenes Docker y permite descargarlas con docker pull o subirlas con docker push.

Cuando ejecutamos:

docker pull nginx
Copied!

Docker busca la imagen nginx en el registro por defecto. Si no le decimos otra cosa, ese registro es Docker Hub.

Por eso podemos escribir comandos tan sencillos como:

docker run nginx
Copied!

Y Docker, si no tiene la imagen en local, hace automáticamente algo parecido a:

docker pull nginx
docker run nginx
Copied!

Es decir, primero descarga la imagen y después crea el contenedor a partir de ella.

Repositorios en Docker Hub

En Docker Hub, las imágenes se organizan en repositorios. Un repositorio agrupa las distintas versiones o variantes de una misma imagen.

Por ejemplo, nginx es un repositorio. mysql es otro. python es otro.

Cuando una imagen pertenece a un usuario u organización, normalmente se escribe así:

usuario/repositorio
Copied!

Por ejemplo:

luisllamas/mi-api
Copied!

Esto significa que el repositorio mi-api pertenece al usuario u organización luisllamas.

Buscar imágenes

La forma más cómoda de buscar imágenes es entrar en la web de Docker Hub y usar el buscador.

También se puede buscar desde la terminal con:

docker search mysql
Copied!

Este comando muestra una lista de imágenes relacionadas con MySQL, junto con una descripción breve.

Descargar imágenes

Para descargar una imagen usamos docker pull:

docker pull nginx
Copied!

Esto descarga la imagen a nuestro equipo. A partir de ese momento, Docker puede crear contenedores usando esa imagen sin volver a descargarla.

Publicar nuestras imágenes

Docker Hub no sirve solo para descargar imágenes de otros. También podemos subir nuestras propias imágenes.

El flujo básico es:

Crear una cuenta en Docker Hub.

Iniciar sesión desde la terminal.

docker login
Copied!

Construir una imagen local.

docker build -t mi-app .
Copied!

Ponerle un nombre que apunte a vuestro usuario o repositorio.

docker tag mi-app usuario-docker/mi-app:1.0
Copied!

Subirla con docker push.

docker push usuario-docker/mi-app:1.0
Copied!

A partir de ese momento, otra máquina podría descargarla con:

docker pull usuario-docker/mi-app:1.0
Copied!

Antes de subir una imagen, revisad que no habéis metido dentro archivos sensibles: .env, claves privadas, certificados, tokens, carpetas .git, etc.

Una imagen publicada puede ser descargada y analizada capa por capa. No deis por hecho que algo queda oculto porque “no se ve” al arrancar el contenedor.