Sobes.tech
Middle

Сүрөдө өзгөртүүлөр киргизилгандан кийин эмне болот?

sobes.tech AI

AIден жооп

Постфактум өзгөртүүлөрдү киргизгенден кийин, сүрөт жаңы, өзүнчө версия болуп саналат. Бул сүрөткө негизделген контейнер кийинки жолу ишке киргизилгенде, ал өзгөртүүлөрдү чагылдырган өзгөртүлгөн версияны колдонуп, иштейт. Эски контейнерлер, мурдагы версиялардын негизинде ишке киргизилген, өз абалын сактап калат жана эски версия менен иштей берет, жаңы сүрөткө негизделгенге чейин. Башкача айтканда, сүрөттөгү өзгөртүүлөр, иштеп жаткан контейнерлерге таасир этпейт.

Docker мисалында жашоо циклин карап көрөлү:

  1. Build Dockerfile: Сиз Dockerfileда өзгөртүүлөр киргизесиз:

    # Жаңы Dockerfile
    FROM ubuntu:latest
    RUN apt-get update && apt-get install -y nginx
    COPY index.html /var/www/html/
    EXPOSE 80
    
  2. Build сүрөт: Сиз түзөсүз:

    # Жаңы версияны түзүү
    docker build -t my-webserver:v2 .
    

    Docker жаңы катмарды түзөт, ал мурдагы катмарлардын үстүнө өзгөртүүлөрдү кошот. my-webserver:v2 эми жаңы сүрөткө шилтеме кылат.

  3. Жаңы контейнерди ишке киргизүү: Сиз ишке киргизесиз:

    # Жаңы сүрөткө негизделген контейнерди ишке киргизүү
    docker run -d -p 8080:80 --name webserver_v2 my-webserver:v2
    

    Бул контейнер жаңы сүрөттү колдонуп иштейт.

  4. Эски контейнерлер: Мисалы, my-webserver:v1 негизинде ишке киргизилген контейнерлер, эски маалыматтар жана конфигурациялар менен иштөөдө калат.

Иш-аракеттер Натыйжа Эски контейнерлерге таасир
Dockerfile өзгөртүү Сүрөттүн аныктама коду өзгөрөт. Жок
Сүрөттү түзүү (docker build) Жаңы сүрөт түзүлөт, уникалдуу ID менен. Жок
Сүрөттү белгилөө (docker tag) Жаңы сүрөткө алиас берилет. Жок
Жаңы контейнерди ишке киргизүү Жаңы контейнер жаңы сүрөттү колдонуп иштейт. Жок
Эски контейнерди кайра ишке киргизүү Эски контейнер эски сүрөт менен иштейт. Жок (өзүнчө)
Эски сүрөттү өчүрүү Сүрөт өчүрүлөт, бирок контейнерлер сакталат. Жок (контейнерлер сакталат)

Эгер иштеп жаткан контейнерлерди жаңы сүрөткө жаңыртуу керек болсо, эски контейнерлерди токтотуп, өчүрүп, андан соң жаңысын ишке киргизүү керек. Өндүрүш шарттарында мындай жаңыртууларды башкаруу үчүн Kubernetes, Docker Swarm сыяктуу оркестраторлор жана Docker Compose сыяктуу куралдар колдонулат, алар роллинг жаңыртуулар стратегияларын ишке ашырат.