Eseguire il push delle immagini nei registry
Configuri i workflow per eseguire il push delle immagini Docker create in container registry come Docker Hub o GitHub Container Registry.
Eseguire il push delle immagini nei registry è una lezione CI/CD with GitHub Actions & DevOps Pipelines gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CI/CD with GitHub Actions & DevOps Pipelines, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CI/CD with GitHub Actions & DevOps Pipelines include 4 lezioni in totale.
Cosa sono i registry di container?
Un registry di container è un servizio di archiviazione online sicuro per le immagini Docker. Lo si può considerare come un cloud drive progettato appositamente per i pacchetti della propria applicazione.
- Conserva diverse versioni delle immagini.
- Rende semplice condividere le immagini con altri.
- È fondamentale per il deployment in ambienti diversi.
Perché usare i registry?
I registry sono essenziali per lo sviluppo software moderno. Offrono diversi vantaggi importanti:
- Condivisione delle immagini: Distribuire facilmente le immagini dell'applicazione.
- Controllo delle versioni: Archiviare e gestire diverse versioni dell'applicazione.
- Deployment affidabile: Garantire deployment coerenti in ambienti diversi.
- Sicurezza: Molti registry offrono la scansione delle vulnerabilità.
Servizi di registry più comuni
Sono disponibili molti servizi di registry di container. Due tra i più diffusi sono:
- Docker Hub: Un registry pubblico ampiamente utilizzato. Ideale per condividere immagini pubbliche e per i progetti personali.
- GitHub Container Registry (GHCR): Strettamente integrato con i repository GitHub. Ideale per le immagini private e per le organizzazioni che utilizzano già GitHub.
Anche altri importanti provider cloud offrono registry propri, come AWS ECR o Google Container Registry.
Autenticazione al registry
Prima di poter eseguire il push di un'immagine in un registry, è necessario dimostrare la propria identità. Questo processo si chiama autenticazione, o "login".
Di solito si forniscono un nome utente e un personal access token (PAT) o una password. Queste credenziali garantiscono che solo gli utenti autorizzati possano eseguire il push o il pull delle immagini dai repository privati.
Utilizzo di docker/login-action
In GitHub Actions, il modo migliore per autenticarsi con la maggior parte dei registry compatibili con Docker consiste nell'utilizzare docker/login-action.
Questa action esegue in modo sicuro il login del workflow nel registry specificato, consentendo ai passaggi successivi di eseguire il push delle immagini. Accetta username e password come input.
Eseguire il push su Docker Hub
Per eseguire il push di un'immagine su Docker Hub, il workflow deve:
- Eseguire il login: Utilizzare
docker/login-actioncon il nome utente Docker Hub e un Personal Access Token (PAT) archiviato come GitHub Secret. - Build e push: Utilizzare
docker/build-push-actionper creare l'immagine e impostarepush: true. Verificare che il tag dell'immagine includa il nome utente Docker Hub, ad esempioyour_username/my-app:latest.
Esempio di workflow per Docker Hub
Ecco un esempio di workflow GitHub Actions per creare e pubblicare un'immagine Docker su Docker Hub. Ricordi di configurare DOCKER_USERNAME e DOCKER_TOKEN come GitHub Secrets nel repository.
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:latestEseguire il push su GHCR
GitHub Container Registry (GHCR) offre un'integrazione perfetta. Differenze principali per GHCR:
- Autenticazione: È possibile utilizzare il valore integrato
GITHUB_TOKENper l'autenticazione. Impostareusername: ${{ github.actor }}epassword: ${{ secrets.GITHUB_TOKEN }}. - Autorizzazioni: Il job deve avere l'autorizzazione
packages: write. - Tag delle immagini: Le immagini vengono contrassegnate nel formato
ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.
Esempio di workflow per GHCR
Questo workflow mostra come eseguire il push di un'immagine in GitHub Container Registry. Noti il blocco permissions e il formato del tag dell'immagine.
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 }}:latestVerifica della comprensione
Esaminiamo rapidamente ciò che ha imparato sul push delle immagini nei registri di container.
Riepilogo: il push delle immagini!
Ottimo lavoro! Ha imparato a eseguire il push di immagini Docker nei registri di container utilizzando GitHub Actions.
- I registri di container archiviano e gestiscono le immagini Docker.
- L'autenticazione tramite credenziali è un primo passaggio fondamentale.
docker/login-actionconsente di effettuare l'accesso in modo sicuro.- Ha visto esempi sia per Docker Hub sia per GitHub Container Registry, comprendendo i rispettivi requisiti specifici di autenticazione e di assegnazione dei tag.
Ora imparerà a distribuire queste immagini in Kubernetes!
Domande Frequenti
La lezione «Eseguire il push delle immagini nei registry» è gratuita?
Sì — il testo completo di «Eseguire il push delle immagini nei registry» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CI/CD with GitHub Actions & DevOps Pipelines, passa a CoddyKit PRO. Il corso CI/CD with GitHub Actions & DevOps Pipelines include 4 lezioni in totale.
Cosa imparerò in «Eseguire il push delle immagini nei registry»?
Configuri i workflow per eseguire il push delle immagini Docker create in container registry come Docker Hub o GitHub Container Registry. Eserciti CI/CD with GitHub Actions & DevOps Pipelines con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare CI/CD with GitHub Actions & DevOps Pipelines?
Non è richiesta alcuna esperienza precedente. CI/CD with GitHub Actions & DevOps Pipelines su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Eseguire il push delle immagini nei registry»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione CI/CD with GitHub Actions & DevOps Pipelines?
Sì. Ogni lezione CI/CD with GitHub Actions & DevOps Pipelines include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Creare immagini Docker con Actions
- Eseguire il push delle immagini nei registry
- Eseguire il deploy su Kubernetes con Actions
- Chart Helm e manifest Kubernetes in CI/CD