# Docker Hub quickstart


Docker Hub proporciona una amplia biblioteca de imágenes y recursos precompilados, acelerando los flujos de trabajo de desarrollo y reduciendo el tiempo de configuración. Puedes basarte en las imágenes precompiladas de Docker Hub y luego usar repositorios para compartir y distribuir tus propias imágenes con tu equipo o con millones de otros desarrolladores.

Esta guía te muestra cómo buscar y ejecutar una imagen precompilada. Luego, te guía en la creación de una imagen personalizada y en su difusión a través de Docker Hub.

## Requisitos previos

- [Descargar e instalar Docker](/../get-started/get-docker/)
- Una cuenta verificada de [Docker](https://app.docker.com/signup)

## Paso 1: Buscar una imagen en la biblioteca de Docker Hub

Puedes buscar contenido en la propia plataforma de Docker Hub, en el panel de control de Docker Desktop (Dashboard) o utilizando la CLI.

Para buscar o explorar contenido en Docker Hub:

**Docker Hub**



1. Navega a la [página de exploración de Docker Hub](https://hub.docker.com/explore).

   En la página **Explore**, puedes navegar por catálogo o categoría, o utilizar la búsqueda para encontrar contenido de forma rápida.

2. En **Categories**, selecciona **Web servers**.

   Una vez que se muestren los resultados, puedes filtrarlos aún más utilizando los filtros del lado izquierdo de la página.

3. En los filtros, selecciona **Docker Official Image**.

   Filtrar por contenido de confianza garantiza que solo veas imágenes seguras y de alta calidad seleccionadas por Docker y socios de publicación verificados.

4. En los resultados, selecciona la imagen **nginx**.

   Al seleccionar la imagen se abre su página, donde puedes obtener más información sobre cómo utilizarla. En la página también encontrarás el comando `docker pull` para descargar la imagen.

**Docker Desktop**



1. Abre el Dashboard de Docker Desktop.
2. Selecciona la vista **Docker Hub**.

   En la vista **Docker Hub**, puedes navegar por catálogo o categoría, o utilizar la búsqueda para encontrar contenido de forma rápida.

3. Deja el cuadro de búsqueda vacío y selecciona **Search**.

   Los resultados de la búsqueda se muestran con filtros adicionales que ahora aparecen junto al cuadro de búsqueda.

4. Selecciona el icono de filtro de búsqueda y luego selecciona **Docker Official Image** y **Web Servers**.
5. En los resultados, selecciona la imagen **nginx**.

**CLI**



1. Abre una ventana de terminal.

   > [!TIP]
   >
   > El Dashboard de Docker Desktop contiene una terminal integrada. En la parte inferior del Dashboard, selecciona **>_ Terminal** para abrirla.

2. En la terminal, ejecuta el siguiente comando:

   ```console
   $ docker search --filter is-official=true nginx
   ```

   A diferencia de las interfaces de Docker Hub y Docker Desktop, no puedes buscar por categoría utilizando el comando `docker search`. Para obtener más detalles sobre el comando, consulta [docker search](/reference/cli/docker/search/).



Ahora que has encontrado una imagen, es hora de descargarla y ejecutarla en tu dispositivo.

## Paso 2: Descargar y ejecutar una imagen desde Docker Hub

Puedes ejecutar imágenes de Docker Hub utilizando la CLI o el Dashboard de Docker Desktop.

**Docker Desktop**



1. En el Dashboard de Docker Desktop, selecciona la imagen **nginx** en la vista **Docker Hub**. Para obtener más detalles, consulta [Paso 1: Buscar una imagen en la biblioteca de Docker Hub](#step-1-find-an-image-in-docker-hubs-library).

2. En la pantalla de **nginx**, selecciona **Run**.

   Si la imagen no existe en tu dispositivo, se descarga automáticamente desde Docker Hub. Descargar la imagen puede tardar unos segundos o minutos, dependiendo de tu conexión. Una vez descargada la imagen, aparece una ventana en Docker Desktop donde puedes especificar las opciones de ejecución.

3. En la opción **Host port**, especifica `8080`.
4. Selecciona **Run**.

   Los registros del contenedor aparecen después de que este se inicia.

5. Selecciona el enlace **8080:80** para abrir el servidor, o visita [http://localhost:8080](http://localhost:8080) en tu navegador web.

6. En el Dashboard de Docker Desktop, selecciona el botón **Stop** para detener el contenedor.

**CLI**



1. Abre una ventana de terminal.

   > [!TIP]
   >
   > El Dashboard de Docker Desktop contiene una terminal integrada. En la parte inferior del Dashboard, selecciona **>_ Terminal** para abrirla.

2. En tu terminal, ejecuta el siguiente comando para descargar y ejecutar la imagen de Nginx:

   ```console
   $ docker run -p 8080:80 --rm nginx
   ```

   El comando `docker run` descarga y ejecuta automáticamente la imagen sin necesidad de ejecutar primero `docker pull`. Para obtener más información sobre el comando y sus opciones, consulta la [referencia de la CLI de `docker run`](/reference/cli/docker/container/run/). Después de ejecutar el comando, deberías ver una salida similar a la siguiente:

   ```console {collapse=true}
   Unable to find image 'nginx:latest' locally
   latest: Pulling from library/nginx
   a480a496ba95: Pull complete
   f3ace1b8ce45: Pull complete
   11d6fdd0e8a7: Pull complete
   f1091da6fd5c: Pull complete
   40eea07b53d8: Pull complete
   6476794e50f4: Pull complete
   70850b3ec6b2: Pull complete
   Digest: sha256:28402db69fec7c17e179ea87882667f1e054391138f77ffaf0c3eb388efc3ffb
   Status: Downloaded newer image for nginx:latest
   /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
   /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
   /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
   10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
   10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
   /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
   /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
   /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
   /docker-entrypoint.sh: Configuration complete; ready for start up
   2024/11/07 21:43:41 [notice] 1#1: using the "epoll" event method
   2024/11/07 21:43:41 [notice] 1#1: nginx/1.27.2
   2024/11/07 21:43:41 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14)
   2024/11/07 21:43:41 [notice] 1#1: OS: Linux 6.10.11-linuxkit
   2024/11/07 21:43:41 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
   2024/11/07 21:43:41 [notice] 1#1: start worker processes
   2024/11/07 21:43:41 [notice] 1#1: start worker process 29
   ...
   ```

3. Visita [http://localhost:8080](http://localhost:8080) para ver la página predeterminada de Nginx y verificar que el contenedor se está ejecutando.

4. En la terminal, presiona <kdb>Ctrl+C</kbd> para detener el contenedor.



Ya has ejecutado un servidor web sin necesidad de configuraciones previas. Docker Hub proporciona acceso instantáneo a imágenes de contenedores listas para usar, lo que te permite descargar y ejecutar aplicaciones de forma rápida sin necesidad de instalar o configurar software manualmente. Con la gran biblioteca de imágenes de Docker Hub, puedes experimentar y desplegar aplicaciones sin esfuerzo, lo que aumenta la productividad y facilita probar nuevas herramientas, configurar entornos de desarrollo o basarte en software existente.

También puedes extender imágenes de Docker Hub, lo que te permite compilar y personalizar rápidamente tus propias imágenes para adaptarlas a necesidades específicas.

## Paso 3: Compilar y enviar una imagen a Docker Hub

1. Crea un [Dockerfile](/reference/dockerfile/) para especificar tu aplicación:

   ```dockerfile
   FROM nginx
   RUN echo "<h1>Hello world from Docker!</h1>" > /usr/share/nginx/html/index.html
   ```

   Este Dockerfile extiende la imagen de Nginx de Docker Hub para crear un sitio web sencillo. Con unas pocas líneas, puedes configurar, personalizar y compartir un sitio web estático utilizando Docker.

2. Ejecuta el siguiente comando para compilar tu imagen. Reemplaza `<YOUR-USERNAME>` con tu Docker ID.

   ```console
   $ docker build -t <YOUR-USERNAME>/nginx-custom .
   ```

   Este comando compila tu imagen y la etiqueta para que Docker entienda a qué repositorio subirla en Docker Hub. Para obtener más información sobre el comando y sus opciones, consulta la [referencia de la CLI de `docker build`](/reference/cli/docker/buildx/build/). Después de ejecutar el comando, deberías ver una salida similar a la siguiente:

   ```console {collapse=true}
   [+] Building 0.6s (6/6) FINISHED                      docker:desktop-linux
    => [internal] load build definition from Dockerfile                  0.0s
    => => transferring dockerfile: 128B                                  0.0s
    => [internal] load metadata for docker.io/library/nginx:latest       0.0s
    => [internal] load .dockerignore                                     0.0s
    => => transferring context: 2B                                       0.0s
    => [1/2] FROM docker.io/library/nginx:latest                         0.1s
    => [2/2] RUN echo "<h1>Hello world from Docker!</h1>" > /usr/share/  0.2s
    => exporting to image                                                0.1s
    => => exporting layers                                               0.0s
    => => writing image sha256:f85ab68f4987847713e87a95c39009a5c9f4ad78  0.0s
    => => naming to docker.io/mobyismyname/nginx-custom                  0.0s
   ```

3. Ejecuta el siguiente comando para probar tu imagen. Reemplaza `<YOUR-USERNAME>` con tu Docker ID.

   ```console
   $ docker run -p 8080:80 --rm <YOUR-USERNAME>/nginx-custom
   ```

4. Visita [http://localhost:8080](http://localhost:8080) para ver la página. Deberías ver `Hello world from Docker!`.

5. En la terminal, presiona CTRL+C para detener el contenedor.

6. Inicia sesión en Docker Desktop. Debes iniciar sesión antes de subir una imagen a Docker Hub.

7. Ejecuta el siguiente comando para subir tu imagen a Docker Hub. Reemplaza `<YOUR-USERNAME>` con tu Docker ID.

   ```console
   $ docker push <YOUR-USERNAME>/nginx-custom
   ```

     > [!NOTE]
     >
     > Debes haber iniciado sesión en Docker Hub a través de Docker Desktop o la línea de comandos, y también debes nombrar tus imágenes correctamente, de acuerdo con los pasos anteriores.

   El comando sube la imagen a Docker Hub y crea automáticamente el repositorio si este no existe. Para obtener más información sobre el comando, consulta la [referencia de la CLI de `docker push`](/reference/cli/docker/image/push/). Después de ejecutar el comando, deberías ver una salida similar a la siguiente:

   ```console {collapse=true}
   Using default tag: latest
   The push refers to repository [docker.io/mobyismyname/nginx-custom]
   d0e011850342: Pushed
   e4e9e9ad93c2: Mounted from library/nginx
   6ac729401225: Mounted from library/nginx
   8ce189049cb5: Mounted from library/nginx
   296af1bd2844: Mounted from library/nginx
   63d7ce983cd5: Mounted from library/nginx
   b33db0c3c3a8: Mounted from library/nginx
   98b5f35ea9d3: Mounted from library/nginx
   latest: digest: sha256:7f5223ae866e725a7f86b856c30edd3b86f60d76694df81d90b08918d8de1e3f size: 1985
   ```

   Ahora que has creado un repositorio y subido tu imagen, es hora de ver tu repositorio y explorar sus opciones.

## Paso 4: Ver tu repositorio en Docker Hub y explorar opciones

Puedes ver tus repositorios de Docker Hub en la interfaz de Docker Hub o en la de Docker Desktop.

**Docker Hub**



1. Ve a [Docker Hub](https://hub.docker.com) e inicia sesión.

   Después de iniciar sesión, deberías estar en la página **Repositories**. De lo contrario, ve a la página [**Repositories**](https://hub.docker.com/repositories/).

2. Busca el repositorio **nginx-custom** y selecciona esa fila.

   Después de seleccionar el repositorio, deberías ver más detalles y opciones para tu repositorio.

**Docker Desktop**



1. Inicia sesión en Docker Desktop.
2. Selecciona la vista **Images**.
3. Selecciona la pestaña **Hub repositories**.

   Aparece una lista de tus repositorios de Docker Hub.

4. Busca el repositorio **nginx-custom**, pasa el cursor sobre la fila y luego selecciona **View in Hub**.

   Docker Hub se abre y puedes ver más detalles sobre la imagen.



Has verificado que tu repositorio existe en Docker Hub y has descubierto más opciones para él. Consulta los siguientes pasos para obtener más información sobre algunas de estas opciones.

## Siguientes pasos

Añade [información del repositorio](/docker-hub/repos/manage/information/) para ayudar a los usuarios a encontrar y utilizar tu imagen.

