Skicka avbildningar till register
Konfigurera arbetsflöden för att skicka era byggda Docker-avbildningar till containerregister som Docker Hub eller GitHub Container Registry.
Skicka avbildningar till register är en gratis lektion i CI/CD med GitHub Actions och DevOps-pipelines på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för CI/CD med GitHub Actions och DevOps-pipelines, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i CI/CD med GitHub Actions och DevOps-pipelines innehåller totalt 4 lektioner.
Vad är containerregister?
Ett containerregister är en säker onlinelagringstjänst för era Docker-avbildningar. Se det som en molnlagring som är särskilt utformad för programmets paket.
- Registren lagrar olika versioner av era avbildningar.
- De gör det enkelt att dela avbildningar med andra.
- De är avgörande för distribution till olika miljöer.
Varför använda register?
Register är nödvändiga i modern programvaruutveckling. De ger flera viktiga fördelar:
- Dela avbildningar: Distribuera programmets avbildningar enkelt.
- Versionshantering: Lagra och hantera olika versioner av programmet.
- Tillförlitlig distribution: Säkerställ konsekventa distributioner i olika miljöer.
- Säkerhet: Många register erbjuder sårbarhetsskanning.
Vanliga registertjänster
Det finns många tillgängliga containerregistertjänster. Två populära tjänster som ni ofta stöter på är:
- Docker Hub: Ett välanvänt offentligt register. Utmärkt för att dela offentliga avbildningar och för personliga projekt.
- GitHub Container Registry (GHCR): Tätt integrerat med GitHub-arkiv. Utmärkt för privata avbildningar och organisationer som redan använder GitHub.
Andra stora molnleverantörer erbjuder också egna register, till exempel AWS ECR eller Google Container Registry.
Registerautentisering
Innan ni kan pusha en avbildning till ett register måste ni bevisa vem ni är. Denna process kallas autentisering, eller att logga in.
Vanligtvis anger ni ett användarnamn och en personlig åtkomsttoken (PAT) eller ett lösenord. Dessa autentiseringsuppgifter säkerställer att endast behöriga användare kan pusha eller hämta avbildningar från era privata arkiv.
Använda docker/login-action
I GitHub Actions är det bästa sättet att autentisera mot de flesta Docker-kompatibla register att använda docker/login-action.
Denna action loggar säkert in ert workflow i det angivna registret, så att efterföljande steg kan pusha avbildningar. Den tar emot username och password som indata.
Pusha till Docker Hub
För att pusha en avbildning till Docker Hub måste ert workflow:
- Logga in: Använd
docker/login-actionmed ert Docker Hub-användarnamn och en personlig åtkomsttoken (PAT) som lagras som en GitHub Secret. - Bygga och pusha: Använd
docker/build-push-actionför att bygga avbildningen och angepush: true. Kontrollera att avbildningstaggen innehåller ert Docker Hub-användarnamn, till exempelyour_username/my-app:latest.
Exempel på Docker Hub-workflow
Här är ett exempel på ett GitHub Actions-workflow som bygger och pushar en Docker-avbildning till Docker Hub. Kom ihåg att konfigurera DOCKER_USERNAME och DOCKER_TOKEN som GitHub Secrets i ert arkiv.
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:latestPusha till GHCR
GitHub Container Registry (GHCR) erbjuder sömlös integrering. Viktiga skillnader för GHCR:
- Autentisering: Ni kan använda den inbyggda
GITHUB_TOKENför autentisering. Angeusername: ${{ github.actor }}ochpassword: ${{ secrets.GITHUB_TOKEN }}. - Behörigheter: Jobbet behöver behörigheten
packages: write. - Taggning av avbildningar: Avbildningar taggas enligt formatet
ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.
Exempel på GHCR-workflow
Detta workflow visar hur en avbildning pushas till GitHub Container Registry. Observera blocket permissions och formatet för avbildningstaggen.
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 }}:latestKontrollera era kunskaper
Låt oss snabbt gå igenom vad ni har lärt er om att skicka avbildningar till containerregister.
Repetition: Skicka era avbildningar!
Bra jobbat! Ni har lärt er att skicka Docker-avbildningar till containerregister med hjälp av GitHub Actions.
- Containerregister lagrar och hanterar era Docker-avbildningar.
- Autentisering med autentiseringsuppgifter är ett avgörande första steg.
docker/login-actionhjälper er att logga in på ett säkert sätt.- Ni har sett exempel på både Docker Hub och GitHub Container Registry och förstått deras olika krav på autentisering och taggning.
Nu ska ni lära er att driftsätta dessa avbildningar i Kubernetes!
Lär dig CI/CD med GitHub Actions och DevOps-pipelines med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Skicka avbildningar till register” gratis?
Ja – hela texten till ”Skicka avbildningar till register” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i CI/CD med GitHub Actions och DevOps-pipelines, kan Ni uppgradera till CoddyKit PRO. Kursen i CI/CD med GitHub Actions och DevOps-pipelines innehåller totalt 4 lektioner.
Vad lär jag mig i ”Skicka avbildningar till register”?
Konfigurera arbetsflöden för att skicka era byggda Docker-avbildningar till containerregister som Docker Hub eller GitHub Container Registry. Ni övar på CI/CD med GitHub Actions och DevOps-pipelines med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig CI/CD med GitHub Actions och DevOps-pipelines?
Du behöver inga förkunskaper. Utbildningen i CI/CD med GitHub Actions och DevOps-pipelines på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Skicka avbildningar till register”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här CI/CD med GitHub Actions och DevOps-pipelines-lektionen?
Ja. Varje CI/CD med GitHub Actions och DevOps-pipelines-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Bygga Docker-avbildningar med Actions
- Skicka avbildningar till register
- Distribuera till Kubernetes med Actions
- Helm Charts och Kubernetes-manifest i CI/CD