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:
-
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 -
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:v2wijst nu naar de nieuwe afbeelding. -
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:v2Deze container gebruikt de nieuwe afbeeldingsversie.
-
Bestaande containers: Containers die bijvoorbeeld op
my-webserver:v1waren 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.