Що таке Docker Hub і як ним користуватися?

Автор: Опубліковано

Коротко: Docker Hub — це онлайн-реєстр образів контейнерів, тобто місце, звідки можна завантажувати готові пакети для запуску застосунків і де можна публікувати власні. Ним користуються, зокрема, розробники, яким потрібен вебсервер, база даних або тестове середовище без ручного встановлення всіх складників. Docker Hub зберігає образи, але сам не запускає ваш застосунок — це робить контейнерне середовище на комп’ютері або сервері.

Образ, контейнер і Docker Hub — у чому різниця?

Образ контейнера — це пакет із застосунком, потрібними йому бібліотеками та конфігурацією запуску. Контейнер — це запущений екземпляр такого образу: він має власні процеси й ізольоване середовище, але зазвичай використовує спільне з хостом ядро системи. З одного образу можна створити багато контейнерів.

Docker — це набір інструментів для збирання й запуску контейнерів. Docker Hub — окремий сервіс, який зберігає та надає доступ до їхніх образів. Його можна порівняти зі складом готових пакунків: ви вибираєте пакунок, завантажуєте його, а потім запускаєте його вміст у себе.

Наприклад, образ PostgreSQL містить складники, потрібні для запуску сервера бази даних. Однак це не означає, що Docker Hub зберігає дані вашої бази. Дані створюються під час роботи контейнера, і їхнє постійне зберігання потрібно планувати окремо. Для цього можна використати, наприклад, том — простір для даних, незалежний від життєвого циклу контейнера.

Що містить репозиторій образу?

Репозиторій у Docker Hub — це набір образів, опублікованих під спільною назвою. Він може містити різні версії застосунку, варіанти середовища та образи для різних архітектур процесора. Публічні репозиторії доступні іншим користувачам; доступ до приватних обмежений правами доступу.

Адреса образу зазвичай має вигляд akaunt/nazva:tag. Тег — це мітка, яка вказує на вибраний варіант або версію, наприклад kompaniia/zastosunok:1.4. Для образів із програми Docker Official Images часто використовують коротшу назву, наприклад nginx:stable.

На сторінці репозиторію насамперед шукайте інструкції із запуску, підтримувані теги, обов’язкові змінні середовища та інформацію про зберігання даних. Самого завантаження образу недостатньо, якщо застосунку потрібні пароль, налаштування мережі або додаткові сервіси.

Тег не є незмінним ідентифікатором: видавець може прив’язати до нього новіший образ. Це стосується й мітки latest, яка не гарантує ані найновішої версії за нумерацією, ані найкращої стабільності. Якщо для наступних розгортань вам потрібен точно той самий образ, можна вказати його digest — криптографічний ідентифікатор вмісту.

Як завантажити й запустити образ із Docker Hub?

Для простого тесту потрібен встановлений і запущений Docker, наприклад через Docker Desktop або Docker Engine. Обліковий запис у Docker Hub потрібен не для кожного завантаження публічного образу, хоча автентифікація та ліміти сервісу можуть впливати на доступ.

Наведений нижче приклад запускає сервер Nginx — програму, яка обслуговує вебтрафік:

docker pull nginx:stable
docker run --name test-nginx -d -p 127.0.0.1:8080:80 nginx:stable

Перша команда завантажує образ. Друга створює контейнер із назвою test-nginx і запускає його у фоновому режимі завдяки параметру -d. Запис 127.0.0.1:8080:80 робить порт 80 контейнера доступним через порт 8080 лише на локальному інтерфейсі комп’ютера.

Відкрийте в браузері адресу http://localhost:8080, щоб побачити вітальну сторінку сервера. Після тесту зупиніть і видаліть контейнер:

docker stop test-nginx
docker rm test-nginx

Команда docker run може сама завантажити відсутній образ, тож окрема команда docker pull потрібна не завжди. Обидва кроки наведено, щоб чітко відокремити завантаження пакета від запуску застосунку.

Як вибирати образи й зменшувати ризики?

Образ контейнера — це код, який ви запускаєте у власному середовищі. Популярність репозиторію не замінює перевірки видавця, документації та того, як підтримують проєкт. Позначка Docker Official Images допомагає розпізнати образи, що входять до цієї програми, але не гарантує відсутності вразливостей.

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

Не зберігайте паролі, ключі API або приватні сертифікати в образі, який публікуєте. Якщо видалити файл на пізнішому етапі збирання, його вміст усе одно може залишитися в попередньому шарі образу. Приватний репозиторій також не повинен бути сховищем секретів.

Коли публікувати власні образи й що перевірити перед розгортанням?

Власний репозиторій стане в пригоді, якщо ви хочете передавати команді ту саму версію застосунку або розгортати її на різних серверах. Типовий процес передбачає збирання образу з файлу Dockerfile, вхід за допомогою docker login, присвоєння назви відповідно до репозиторію та надсилання образу командою docker push.

Docker Hub — не єдиний реєстр образів. Організація може користуватися іншим сервісом або власним реєстром, якщо їй потрібні певні правила доступу, інтеграції чи контроль над зберіганням артефактів.

Перед розгортанням перевірте в офіційній документації Docker Hub актуальні ліміти завантаження, умови тарифного плану та доступність приватних репозиторіїв. Для першого проєкту почніть із локального тесту одного надійного образу, а потім запишіть вибрану версію та конфігурацію запуску, щоб мати змогу відтворити середовище.

Дивіться також: Що означає www?

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.