Розгляньмо детальніше Docker Hub.
У цій статті ми заглибимося в Docker Hub, вивчимо його можливості, навчимося створювати власні образи та розберемося, як він допомагає у публікації та завантаженні образів. Крім того, ми приділимо увагу аналізу популярних репозиторіїв на Docker Hub. Посилання на Docker Hub.
Необхідні умови
Для успішного засвоєння матеріалу вам потрібні базові знання Docker, а також розуміння принципів роботи у середовищах Windows та Linux. У цій інструкції ми будемо використовувати Docker Desktop для практичних вправ, таких як створення та відправка образів до Docker Hub. Користувачі Windows і Mac можуть завантажити Docker Desktop з цього посилання, а користувачі Linux знайдуть необхідні інструкції за цим посиланням.
Що таке Docker Hub?
Docker Hub – це сервіс реєстру репозиторіїв, який надається Docker Inc.
Цей сервіс дозволяє завантажувати образи Docker на Docker Hub та з нього. Його можна порівняти з GitHub, де ми зберігаємо та публікуємо вихідний код, але у випадку Docker Hub, ми працюємо з образами контейнерів. Це хмарне онлайн-сховище, яке може зберігати як публічні, так і приватні репозиторії. Публічні репозиторії доступні всім, тоді як приватні репозиторії доступні лише авторизованим користувачам. Зберігання приватної інформації в більшій кількості, ніж визначено, може вимагати додаткової оплати.
Можливості Docker Hub
Docker Hub надає широкий спектр функцій, таких як:
#1. Сховища образів
Docker Hub спрощує пошук і завантаження образів контейнерів.
Ви також можете відправляти власні образи, як публічні, так і приватні, до Docker Hub.
#2. Команди та організації
Docker Hub дозволяє створювати робочі групи та розміщувати приватні репозиторії, доступні лише членам вашої організації. Таким чином, можна ефективно керувати доступом до приватних образів контейнерів.
#3. Інтеграція з GitHub та Bitbucket
Docker Hub пропонує інтеграцію з популярними сховищами вихідного коду, такими як GitHub і BitBucket.
#4. Автоматизовані збірки
При будь-яких змінах у вихідному коді, що зберігається у репозиторіях, Docker Hub автоматично виявляє їх, збирає образи контейнерів з GitHub або BitBucket та відправляє їх на Docker Hub.
#5. Веб-хуки
Після успішного завантаження образів, веб-хуки можуть ініціювати дії для інтеграції Docker Hub з іншими сервісами.
#6. Офіційні образи та образи видавців
Офіційні образи, надані Docker Inc., є високоякісними та готовими до використання. Також є образи видавців, які створюються зовнішніми розробниками. Вони часто є сертифікованими образами, що гарантує їхню якість і сумісність з Docker Enterprise. Ми поговоримо про сертифіковані образи докладніше далі.
Створення першого репозиторію
Щоб створити репозиторій, спочатку необхідно увійти в Docker Hub, використовуючи свій обліковий запис. Якщо у вас немає облікового запису, його можна створити, натиснувши кнопку “Зареєструватися” на сайті. Після входу натисніть “Створити репозиторій” на сторінці привітання.
- Після натискання “Створити репозиторій” потрібно вказати ім’я та опис вашого сховища.
- Виберіть видимість репозиторію: “Публічний” або “Приватний”.
За бажанням ви можете інтегрувати ваші репозиторії з GitHub або BitBucket через налаштування збірки, але це необов’язково.
- Коли все готово, натисніть “Створити”.
Вітаємо! Ви створили свій перший репозиторій, який буде виглядати приблизно так:
Docker Hub надає одне безкоштовне приватне сховище. Якщо вам потрібно більше приватних сховищ, необхідно перейти на платний план.
Тепер відкрийте Docker Desktop (або термінал) та увійдіть в Docker Hub за допомогою команди:
docker login
Вивчення образів
Існує два способи пошуку публічних образів на Docker Hub: через вебсайт Docker Hub або через командний рядок. Для прикладу, спробуємо пошукати образи MySQL.
docker search mysql
Завантаження образу
Ви можете завантажити образ з Docker Hub за допомогою команди pull:
# docker pull mysql
Якщо образ MySQL вже присутній на вашому комп’ютері, ця команда оновить його до останньої версії. Варто пам’ятати, що на Docker Hub є багато образів MySQL, оскільки кожен може публікувати свої образи. Вибір відповідного образу залежить від ваших потреб.
Наприклад, завантажимо образ bitnami/mysql:
# docker pull bitnami/mysql
Створення образу
Для створення образу потрібен Dockerfile. Dockerfile – це свого роду інструкція, яка вказує Docker, як збирати образ. Простими словами, це файл конфігурації, який містить інструкції для збірки.
Як це працює?
Docker зчитує інструкції з Dockerfile і автоматично створює образ. Образ Docker – це багаторівнева файлова система, де кожен рівень представляє інструкцію з Dockerfile. Виконаємо наступні кроки для створення образу:
Створіть Dockerfile, який визначає конфігурацію вашої програми:
# sudo vim Dockerfile
Зауважте: назва файлу має бути Dockerfile (з великої літери “D”).
FROM ubuntu:16.04 MAINTAINER [email protected] RUN apt-get update RUN apt-get install –y mysql CMD echo "My first image created."
Розгляньмо основні ключові слова, що використовуються в Dockerfile:
- Символ # використовується для додавання коментарів у Dockerfile.
- Ключове слово “FROM” визначає базовий образ, який буде використано.
- Ключове слово “MAINTAINER” вказує на розробника, що підтримує цей образ.
- Ключове слово “RUN” використовується для запуску інструкцій всередині образу. У нашому випадку спочатку оновлюємо систему, а потім встановлюємо MySQL.
- Ключове слово “CMD” використовується для виконання команди після запуску контейнера.
- Ключове слово “COPY” використовується для копіювання файлів з хост-системи в контейнер.
- Ключове слово “EXPOSE” використовується для визначення номера порту, на якому контейнер буде запускати свій процес.
Виконайте команду нижче, щоб створити образ Docker:
Синтаксис:
docker build -t <ваше_ім’я_користувача>/<назва-репозиторію> .
# docker build -t asadali08537/first-repo .
У цій команді, назва образу та “.” позначають поточний робочий каталог. Це означає, що Docker шукає файл Dockerfile у цьому каталозі. «-t» використовується для тегування образу. Результат має бути схожим на:
Тепер перевіримо наш образ, запустивши його за допомогою команди run:
docker run asadali08527/first-repo
Ця команда запустила наш образ, успішно встановивши MySQL та відобразивши повідомлення.
Завантаження образу
Після успішного створення та запуску образу, ми можемо завантажити його на Docker Hub за допомогою команди push:
docker push asadali08527/first-repo
На Docker Hub можна перевірити теги та статус вашого образу, він має виглядати приблизно так:
Що таке Docker Certified Images?
Це офіційні образи, що надаються постачальниками та співавторами. Щоб отримати сертифікацію від Docker Hub, образ має відповідати певним стандартам та правилам. Простіше кажучи, ці образи мають успішно пройти ряд тестів.
Docker Hub надає інструмент inspectDockerImage, який дозволяє постачальникам самостійно сертифікувати образи та плагіни (зазвичай, постачальники публікують плагіни для управління томами і мережами).
Примітка:
Щоб опублікувати образ як сертифікований, спочатку необхідно самостійно перевірити його за допомогою inspectDockerImage. Після успішного тестування, Docker Hub сертифікує образ. Якщо образ не призначений для сертифікованого середовища, його не можна публікувати як сертифікований за жодних обставин.
Популярні образи на DockerHub
Docker Hub містить багато відібраних та оптимізованих образів.
Популярність образу залежить від багатьох факторів, таких як залучення, присутність на ринку, рейтинги, відгуки користувачів і т.д. Щоб переглянути список найпопулярніших репозиторіїв, відвідайте вебсайт Docker Hub. Вибір образу залежить від операційної системи та її архітектури. Якщо ви знаєте, де буде використовуватись образ, зверніть увагу на такі фактори:
- Шукайте конкретну версію за допомогою тегів (зазвичай останню).
- Обирайте образи з найбільшою кількістю завантажень та відміток “зірка”.
- Перевіряйте наявність оновлень (коли образ був останній раз оновлений).
- По можливості перевіряйте тип: чи є образ перевіреним видавцем або офіційним (Docker Certified).
Веб-хуки
Веб-хук – це зворотний виклик HTTP, що ініціюється певними подіями. Це спосіб для однієї програми повідомляти іншу програму в реальному часі. Сьогодні майже кожна програма підтримує веб-хуки, і Docker Hub не виняток.
Веб-хук є HTTP push API, який запускається подіями, визначеними користувачем. Веб-хуки у Docker дозволяють сповіщати програми або сервіси, що використовують певні образи. Зазвичай веб-хуки використовуються в Docker як конвеєр подій, де завантаження нового образу запускає тестові програми для перевірки.
Якщо тестування пройшло успішно, це запускає подію для розгортання контейнера, а потім інші події для реєстрації всіх змін.
Висновок
Тепер ви маєте добре розуміння про Docker Hub, а також знаєте, як шукати, створювати та відправляти образи. Пам’ятайте, що публічні образи доступні всім.
Ознайомтеся з інструкцією щодо встановлення Docker, якщо ви ще цього не зробили.