← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 65: Мінімізація образів

Технологія: Docker

Номер лабораторної: 65 · Рівень: middle

Тема: Мінімальні образи і distroless підхід

Повний опис / сценарій лабораторної:

Мета: навчитися будувати мінімальний образ без зайвих пакетів і shell.



Крок 1. Підготувати невеликий додаток який компілюється у статичний бінарник.

Пояснення: наприклад на Go або простий скомпільований інструмент.



Крок 2. Створити Dockerfile з multi stage збіркою.

Пояснення: перша стадія компілює бінарник, друга використовує образ scratch або distroless.



Крок 3. У build стадії встановити компілятор і залежності.

Пояснення: ця стадія не потрапить у фінальний образ.



Крок 4. Скопіювати скомпільований бінарник у фінальну стадію.

Пояснення: базовий образ не містить shell і пакетного менеджера.



Крок 5. Зібрати образ і подивитися розмір.

Команда: docker build -t lab65-min .; docker images lab65-min



Крок 6. Запустити контейнер і перевірити роботу програми.

Команда: docker run --rm lab65-min



Крок 7. Спробувати зайти всередину контейнера за звичкою.

Пояснення: docker exec -it ... sh швидше за все не спрацює бо немає shell.



Крок 8. Обговорити плюси і мінуси мінімальних образів.

Пояснення: краща безпека і розмір проти складнішого debug.



Крок 9. Визначити для яких сервісів у проєкті доцільно переходити на такий підхід.

Пояснення: наприклад stateless api без складних інструментів всередині.



Крок 10. Міні звіт.

Завдання: опиши план міграції одного зі своїх поточних образів на мінімальний варіант.