Obrazlar, qatlamlar va konteynerlar

Nega obraz bir soniyada qayta yig‘iladi va ma’lumotlar qayerga yo‘qoladi.

Obraz va konteyner

Obraz — o‘zgarmas fayl tizimi qatlamlari va nima ishga tushirilishi haqidagi metama’lumot. Konteyner — obrazdan ishga tushirilgan jarayon, ustiga yoziladigan qatlam qo‘shilgan.

Bitta obrazdan istagancha konteyner ishga tushadi, har birida o‘zining bo‘sh yoziladigan qatlami bo‘ladi. Konteyner u yerga yozgan hamma narsa u bilan birga yo‘qoladi.

docker run --rm alpine sh -c 'echo hi > /tmp/file; cat /tmp/file'
docker run --rm alpine cat /tmp/file    # fayl yo‘q

Shuning uchun ma’lumotlar volume’ga chiqariladi.

Qatlamlar

Dockerfile’ning har bir ko‘rsatmasi qatlam yaratadi. Qatlamlar keshlanadi va qayta ishlatiladi.

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
CMD ["node", "server.js"]

Bu yerdagi tartib tasodifiy emas. package.json qolgan koddan oldin ko‘chiriladi, shuning uchun npm ci qatlami bog‘liqliklar o‘zgarmaguncha qayta ishlatiladi.

Qatlamlar faqat qo‘shiladi

Keyingi qatlamda faylni o‘chirish joyni bo‘shatmaydi — fayl oldingi qatlamda qoladi, shunchaki ko‘rinmay qoladi. Shuning uchun o‘rnatish va tozalash bitta ko‘rsatmada bajariladi.