DevOps Bootcamp · Lección

Publicación de imágenes en registros

Configure workflows para publicar sus imágenes Docker compiladas en registros de contenedores como Docker Hub o GitHub Container Registry.

Lección 2 de 411 pasos

Publicación de imágenes en registros es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué son los registros de contenedores?

Un registro de contenedores es un servicio seguro de almacenamiento en línea para sus imágenes de Docker. Considérelo como una unidad en la nube diseñada específicamente para los paquetes de su aplicación.

  • Almacena distintas versiones de sus imágenes.
  • Facilita compartir imágenes con otras personas.
  • Es fundamental para realizar despliegues en distintos entornos.

¿Por qué utilizar registros?

Los registros son esenciales para el desarrollo de software moderno. Ofrecen varias ventajas importantes:

  • Compartir imágenes: distribuir fácilmente las imágenes de su aplicación.
  • Control de versiones: almacenar y gestionar distintas versiones de su aplicación.
  • Despliegues fiables: garantizar despliegues coherentes en distintos entornos.
  • Seguridad: muchos registros ofrecen análisis de vulnerabilidades.

Servicios de registro habituales

Hay muchos servicios de registro de contenedores disponibles. Dos opciones populares con las que se encontrará a menudo son:

  • Docker Hub: un registro público muy utilizado. Es ideal para compartir imágenes públicas y para proyectos personales.
  • GitHub Container Registry (GHCR): está estrechamente integrado con los repositorios de GitHub. Es excelente para imágenes privadas y organizaciones que ya utilizan GitHub.

Otros proveedores importantes de servicios en la nube también ofrecen sus propios registros, como AWS ECR o Google Container Registry.

Autenticación en el registro

Antes de poder enviar una imagen a un registro, debe demostrar quién es. Este proceso se denomina autenticación o «iniciar sesión».

Normalmente, deberá proporcionar un nombre de usuario y un token de acceso personal (PAT) o una contraseña. Estas credenciales garantizan que solo los usuarios autorizados puedan enviar o extraer imágenes de sus repositorios privados.

Uso de docker/login-action

En GitHub Actions, la mejor forma de autenticarse en la mayoría de los registros compatibles con Docker es utilizar docker/login-action.

Esta acción inicia sesión de forma segura en el registro especificado desde su workflow, lo que permite que los pasos posteriores envíen imágenes. Recibe username y password como entradas.

Envío de imágenes a Docker Hub

Para enviar una imagen a Docker Hub, su workflow debe:

  1. Iniciar sesión: utilizar docker/login-action con su nombre de usuario de Docker Hub y un token de acceso personal (PAT) almacenado como GitHub Secret.
  2. Crear y enviar: utilizar docker/build-push-action para crear la imagen y establecer push: true. Asegúrese de que la etiqueta de la imagen incluya su nombre de usuario de Docker Hub, por ejemplo, your_username/my-app:latest.

Ejemplo de workflow para Docker Hub

A continuación se muestra un ejemplo de workflow de GitHub Actions para crear y enviar una imagen de Docker a Docker Hub. Recuerde configurar DOCKER_USERNAME y DOCKER_TOKEN como GitHub Secrets en su repositorio.

name: Publish Docker image to Docker Hub

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Log in to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_TOKEN }}

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ${{ secrets.DOCKER_USERNAME }}/my-app:latest

Envío de imágenes a GHCR

GitHub Container Registry (GHCR) ofrece una integración fluida. Estas son las principales diferencias de GHCR:

  • Autenticación: puede utilizar el GITHUB_TOKEN integrado para autenticarse. Establezca username: ${{ github.actor }} y password: ${{ secrets.GITHUB_TOKEN }}.
  • Permisos: su job necesita el permiso packages: write.
  • Etiquetado de imágenes: las imágenes se etiquetan como ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.

Ejemplo de workflow para GHCR

Este workflow muestra cómo enviar una imagen a GitHub Container Registry. Observe el bloque de permissions y el formato de la etiqueta de la imagen.

name: Publish Docker image to GHCR

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write # Required for GHCR

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Log in to GHCR
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ghcr.io/${{ github.repository }}:latest

Compruebe sus conocimientos

Repasemos rápidamente lo que ha aprendido sobre cómo publicar imágenes en registros de contenedores.

Repaso: ¡publique sus imágenes!

¡Excelente trabajo! Ha aprendido a publicar imágenes de Docker en registros de contenedores mediante GitHub Actions.

  • Los registros de contenedores almacenan y gestionan sus imágenes de Docker.
  • La autenticación es un primer paso fundamental que requiere credenciales.
  • docker/login-action le ayuda a iniciar sesión de forma segura.
  • Ha visto ejemplos tanto de Docker Hub como de GitHub Container Registry, y ha comprendido sus requisitos específicos de autenticación y etiquetado.

A continuación, aprenderá a implementar estas imágenes en Kubernetes.

Gratis para empezar

Aprende DevOps Bootcamp con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
142
Lecciones
568

Preguntas frecuentes

¿La lección «Publicación de imágenes en registros» es gratis?

Sí — el texto completo de «Publicación de imágenes en registros» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Publicación de imágenes en registros»?

Configure workflows para publicar sus imágenes Docker compiladas en registros de contenedores como Docker Hub o GitHub Container Registry. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Publicación de imágenes en registros»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Creación de imágenes Docker con Actions
  2. Publicación de imágenes en registros
  3. Despliegue en Kubernetes con Actions
  4. Charts de Helm y manifiestos de Kubernetes en CI/CD
← Volver a DevOps Bootcamp