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.
Publicación de imágenes en registros es una lección gratuita de CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CI/CD with GitHub Actions & DevOps Pipelines 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:
- Iniciar sesión: utilizar
docker/login-actioncon su nombre de usuario de Docker Hub y un token de acceso personal (PAT) almacenado como GitHub Secret. - Crear y enviar: utilizar
docker/build-push-actionpara crear la imagen y establecerpush: 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:latestEnví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_TOKENintegrado para autenticarse. Establezcausername: ${{ github.actor }}ypassword: ${{ 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 }}:latestCompruebe 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-actionle 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.
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 CI/CD with GitHub Actions & DevOps Pipelines, actualiza a CoddyKit PRO. El curso de CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines?
No se requiere experiencia previa. CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines?
Sí. Cada lección de CI/CD with GitHub Actions & DevOps Pipelines 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
- Creación de imágenes Docker con Actions
- Publicación de imágenes en registros
- Despliegue en Kubernetes con Actions
- Charts de Helm y manifiestos de Kubernetes en CI/CD