Пошук уроків, статей та іншого контенту
Звідки беруться готові образи, як обирати версії через теги та керувати локальним кешем образів.
Docker Hub — публічний реєстр, звідки docker завантажує (pull) готові образи, замість того, щоб кожен розробник збирав з нуля образ для, наприклад, PostgreSQL чи Node.js. Офіційні образи (postgres, node, nginx) підтримуються командою Docker чи авторами відповідного проєкту й проходять базову перевірку якості.
docker pull postgres:16 # завантажити конкретний образ і версію локально
docker images # список локально завантажених образів
docker rmi postgres:16 # видалити локально завантажений образТег після двокрапки (postgres:16, node:20-alpine) вказує конкретну версію чи варіант образу — без явного тегу Docker використовує latest, що на практиці означає непередбачувану, змінну з часом версію:
docker pull node # еквівалентно docker pull node:latest — непередбачувана версія
docker pull node:20 # конкретна, відтворювана версіяВикористання тегу latest у продакшн-конфігурації (Dockerfile, docker-compose.yml) — поширена й небезпечна звичка: значення latest змінюється з часом разом із новими релізами образу, тож той самий конфігураційний файл може одного дня почати тягнути принципово іншу версію без жодної видимої зміни в самому проєкті. Явний тег конкретної версії (node:20.11.0, а не node чи навіть node:20) робить збірки відтворюваними.
Багато офіційних образів мають кілька варіантів того самого тегу — наприклад, node:20 (повний, більший розмір, більше передвстановлених утиліт) проти node:20-alpine (побудований на мінімалістичному дистрибутиві Alpine Linux, значно менший за розміром, швидше завантажується й розгортається). Менший образ — менше поверхні для вразливостей і швидше розгортання, ціною іноді відсутніх системних утиліт, які повний образ мав би за замовчуванням.
Використання тегу latest (явно чи неявно, без жодного тегу взагалі) у конфігурації, що має лишатись відтворюваною, — призводить до непередбачуваних змін версії з часом.
Завантажувати неофіційні образи з невідомих джерел без перевірки — образ може містити шкідливий код, оскільки він виконується з повним доступом до всього, що дозволено контейнеру.
Накопичувати невикористовувані завантажені образи (docker images) без періодичного очищення — займають значний обсяг дискового простору з часом.
Docker Hub — реєстр готових образів, з яких docker pull завантажує потрібний локально; офіційні образи (postgres, node, nginx) підтримуються авторами відповідного проєкту. Теги вказують конкретну версію — явний, конкретний тег (не latest) критичний для відтворюваності збірок; alpine/slim-варіанти образів менші за розміром ціною відсутності деяких системних утиліт за замовчуванням.