DevOps-bootcamp · Les

Images naar registries pushen

Configureer workflows om uw gebouwde Docker-images naar containerregistries zoals Docker Hub of GitHub Container Registry te pushen.

Les 2 van 411 stappen

Images naar registries pushen is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat zijn containerregisters?

Een containerregister is een veilige onlineopslagdienst voor je Docker-images. Zie het als een cloudschijf die speciaal is ontworpen voor de pakketten van je toepassing.

  • Registers slaan verschillende versies van je images op.
  • Ze maken het eenvoudig om images met anderen te delen.
  • Ze zijn onmisbaar voor de uitrol naar verschillende omgevingen.

Waarom registers gebruiken?

Registers zijn essentieel voor moderne softwareontwikkeling. Ze bieden verschillende belangrijke voordelen:

  • Images delen: Verspreid de images van je toepassing eenvoudig.
  • Versiebeheer: Sla verschillende versies van je app op en beheer ze.
  • Betrouwbare uitrol: Zorg voor consistente uitrol in verschillende omgevingen.
  • Beveiliging: Veel registers bieden scans op kwetsbaarheden.

Veelgebruikte registerdiensten

Er zijn veel containerregisterdiensten beschikbaar. Twee populaire die je vaak tegenkomt zijn:

  • Docker Hub: Een veelgebruikt openbaar register. Ideaal voor het delen van openbare images en voor persoonlijke projecten.
  • GitHub Container Registry (GHCR): Nauw geïntegreerd met GitHub-repositories. Uitstekend voor privé-images en organisaties die GitHub al gebruiken.

Andere grote cloudproviders bieden ook hun eigen registers aan, zoals AWS ECR of Google Container Registry.

Registerauthenticatie

Voordat je een image naar een register kunt pushen, moet je bewijzen wie je bent. Dit proces heet authenticatie, oftewel 'inloggen'.

Je geeft doorgaans een gebruikersnaam en een persoonlijk toegangstoken (PAT) of wachtwoord op. Deze inloggegevens zorgen ervoor dat alleen bevoegde gebruikers images uit je privérepositories kunnen pushen of pullen.

docker/login-action gebruiken

In GitHub Actions is de beste manier om bij de meeste Docker-compatibele registers te authenticeren het gebruik van de docker/login-action.

Deze actie meldt je werkstroom veilig aan bij het opgegeven register, zodat volgende stappen images kunnen pushen. De actie gebruikt username en password als invoer.

Naar Docker Hub pushen

Om een image naar Docker Hub te pushen, moet je werkstroom het volgende doen:

  1. Meld je aan: Gebruik docker/login-action met je Docker Hub-gebruikersnaam en een persoonlijk toegangstoken (PAT) dat als GitHub Secret is opgeslagen.
  2. Bouwen en pushen: Gebruik docker/build-push-action om je image te bouwen en stel push: true in. Zorg dat je imagetag je Docker Hub-gebruikersnaam bevat, bijvoorbeeld your_username/my-app:latest.

Voorbeeld van een Docker Hub-werkstroom

Hier zie je een voorbeeld van een GitHub Actions-werkstroom voor het bouwen en pushen van een Docker-image naar Docker Hub. Denk eraan om DOCKER_USERNAME en DOCKER_TOKEN als GitHub Secrets in je repository in te stellen.

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

Naar GHCR pushen

GitHub Container Registry (GHCR) biedt naadloze integratie. Belangrijkste verschillen voor GHCR:

  • Authenticatie: Je kunt de ingebouwde GITHUB_TOKEN gebruiken voor authenticatie. Stel username: ${{ github.actor }} en password: ${{ secrets.GITHUB_TOKEN }} in.
  • Machtigingen: Je taak heeft de machtiging packages: write nodig.
  • Images taggen: Images krijgen tags in de vorm van ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.

Voorbeeld van een GHCR-werkstroom

Deze werkstroom laat zien hoe je een image naar GitHub Container Registry pusht. Let op het blok permissions en de indeling van de imagetag.

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

Controleer je begrip

Laten we kort herhalen wat je hebt geleerd over het pushen van images naar containerregisters.

Herhaling: push je images!

Goed gedaan! Je hebt geleerd hoe je Docker-images naar containerregisters pusht met GitHub Actions.

  • Containerregisters slaan je Docker-images op en beheren ze.
  • Authenticatie met inloggegevens is een cruciale eerste stap.
  • docker/login-action helpt je om je veilig aan te melden.
  • Je hebt voorbeelden gezien voor zowel Docker Hub als GitHub Container Registry en begrijpt nu hun specifieke vereisten voor authenticatie en tags.

Vervolgens leer je hoe je deze images naar Kubernetes implementeert!

Gratis beginnen

Leer DevOps-bootcamp met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
142
Lessen
568

Veelgestelde vragen

Is de les “Images naar registries pushen” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Images naar registries pushen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat leer ik in “Images naar registries pushen”?

Configureer workflows om uw gebouwde Docker-images naar containerregistries zoals Docker Hub of GitHub Container Registry te pushen. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Images naar registries pushen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Docker-images bouwen met Actions
  2. Images naar registries pushen
  3. Implementeren in Kubernetes met Actions
  4. Helm-charts en Kubernetes-manifesten in CI/CD
← Terug naar DevOps-bootcamp