Sobes.tech
Middle

Kas notiks pēc izmaiņām attēlā?

sobes.tech AI

Atbilde no AI

Pēc izmaiņu veikšanas attēlā, pats attēls kļūst par jaunu, atsevišķu versiju. Nākamreiz, palaižot konteineru, kas balstīts uz šo attēlu, tas izmantos modificēto versiju, kas atspoguļo piemērotās izmaiņas. Vecie konteineri, kas ir palaisti iepriekšējo versiju attēlos, saglabās savu stāvokli un darbosies ar veco versiju, kamēr tie netiks apturēti un vēlreiz palaisti, balstoties uz jauno attēlu. Citiem vārdiem sakot, izmaiņas attēlā neietekmē jau palaistos konteinerus.

Apskatīsim dzīves ciklu, izmantojot Docker piemēru:

  1. Build Dockerfile: Veicat izmaiņas Dockerfile:

    # Atjaunināts Dockerfile
    FROM ubuntu:latest
    RUN apt-get update && apt-get install -y nginx
    COPY index.html /var/www/html/
    EXPOSE 80
    
  2. Build attēlu: Izpildiet būvniecības komandu:

    # Izveido jaunu attēla versiju
    docker build -t my-webserver:v2 .
    

    Docker izveido jaunu slāni ar izmaiņām virs iepriekšējiem slāņiem. my-webserver:v2 tagad norāda uz jauno attēlu.

  3. Palaidiet jaunu konteineru: Palaidiet jaunu konteineru:

    # Palaist jaunu attēla versiju
    docker run -d -p 8080:80 --name webserver_v2 my-webserver:v2
    

    Šis konteineris izmantos jauno attēlu.

  4. Esošie konteineri: Konteineri, kas ir palaisti, piemēram, uz my-webserver:v1, turpinās darboties ar vecajiem datiem un konfigurācijām.

Darbība Rezultāts Ietekme uz vecajiem konteineriem
Dockerfile izmaiņas Attēla definīcijas kods mainās. Nav
Attēla būvēšana (docker build) Tiek izveidots jauns attēls ar unikālu ID. Nav
Attēla marķēšana (docker tag) Piešķirts jaunam attēlam alias. Nav
Jauna konteineru palaišana Jauns konteineris izmanto jauno attēlu. Nav
Vecā konteineru pārstartēšana Vecais konteineris tiek palaists ar veco attēlu. Nav (pēc noklusējuma)
Vecā attēla dzēšana Attēls tiek dzēsts, bet konteineri paliek. Nav (konteineri paliek)

Ja nepieciešams atjaunināt darbojošos konteinerus uz jauno attēla versiju, ir jāaptur un jādzēš vecie konteineri, pēc tam jāpalaiž jauni ar atjaunināto attēlu. Ražošanas vidē šādai atjaunināšanai izmanto orkestratorus, piemēram, Kubernetes, Docker Swarm vai rīkus kā Docker Compose, kas īsteno rolling update stratēģijas.