Sobes.tech
Middle

Wat gebeurt er na het aanbrengen van wijzigingen in de afbeelding?

sobes.tech AI

Antwoord van AI

Na het aanbrengen van wijzigingen in de afbeelding wordt de afbeelding zelf een nieuwe, aparte versie. Bij het starten van een container op basis van deze afbeelding, zal de container de gewijzigde versie gebruiken die de aangebrachte wijzigingen weerspiegelt. Oude containers, die gebaseerd waren op eerdere versies van de afbeelding, behouden hun status en blijven werken met de oude versie totdat ze worden gestopt en opnieuw worden gestart met de nieuwe afbeelding. Met andere woorden, wijzigingen in de afbeelding beïnvloeden niet de al draaiende containers.

Laten we de levenscyclus bekijken aan de hand van het Docker-voorbeeld:

  1. Dockerfile bouwen: Je brengt wijzigingen aan in de Dockerfile.

    # Bijgewerkte Dockerfile
    FROM ubuntu:latest
    RUN apt-get update && apt-get install -y nginx
    COPY index.html /var/www/html/
    EXPOSE 80
    
  2. Afbeelding bouwen: Je voert de build-opdracht uit.

    # Nieuwe versie van de afbeelding bouwen
    docker build -t my-webserver:v2 .
    

    Docker maakt een nieuwe laag met de aangebrachte wijzigingen bovenop de vorige lagen. my-webserver:v2 wijst nu naar de nieuwe afbeelding.

  3. Nieuwe container starten: Je start een nieuwe container.

    # Een container starten op basis van de nieuwe afbeeldingsversie
    docker run -d -p 8080:80 --name webserver_v2 my-webserver:v2
    

    Deze container gebruikt de nieuwe afbeeldingsversie.

  4. Bestaande containers: Containers die bijvoorbeeld op my-webserver:v1 waren gebaseerd, blijven werken met de oude gegevens en configuraties.

Actie Resultaat Invloed op oude containers
Wijziging in Dockerfile De code die de afbeelding definieert, verandert. Nee
Afbeelding bouwen (docker build) Een nieuwe afbeelding met een unieke ID wordt gemaakt. Nee
Afbeelding taggen (docker tag) Er wordt een alias aan de nieuwe afbeelding toegekend. Nee
Nieuwe container starten De nieuwe container gebruikt de nieuwe afbeelding. Nee
Oude container opnieuw starten De oude container wordt gestart met de oude afbeelding. Nee (standaard)
Oude afbeelding verwijderen De afbeelding wordt verwijderd, maar containers op basis daarvan blijven bestaan. Nee (containers blijven bestaan)

Als je de lopende containers wilt bijwerken naar de nieuwe afbeeldingsversie, moet je de oude stoppen en verwijderen, en vervolgens nieuwe starten met de bijgewerkte afbeelding. In productieomgevingen worden dergelijke updates beheerd met orkestratoren zoals Kubernetes, Docker Swarm of utilities zoals Docker Compose, die rolling update-strategieën implementeren.