9.1 Повторне знайомство з Docker Hub
Давай ближче познайомимося з Docker Hub. Нагадую, це основний публічний реєстр Docker, де юзери можуть зберігати, обмінюватися та знаходити готові образи контейнерів. Платформа дає доступ до мільйонів контейнерів, створених як офіційними організаціями, так і ком'юніті. У цій лекції ми розберемо, як ефективно шукати та завантажувати готові образи з Docker Hub.
Основні задачі сервісу Docker Hub
Docker Hub — це хмарний сервіс, який дозволяє завантажувати образи в централізоване сховище та витягувати їх звідти. Сервіс є платформою, де розробники можуть ділитися своїми образами та використовувати рішення, створені іншими. Основні функції Docker Hub включають:
- Публічні та приватні репозиторії: Можливість зберігати образи як у відкритому доступі для всіх, так і в обмеженому доступі для певних юзерів.
- Автоматичні збірки (automated builds): Інтеграція з системами контролю версій, такими як GitHub, для автоматичної збірки образів при кожній зміні коду.
- Веб-хуки (webhooks): Налаштування автоматичних дій, які виконуються при оновленні образів.
9.2 Пошук готових образів
1. Використання веб-інтерфейсу Docker Hub
- Перейдіть на сайт Docker Hub: відкрийте Docker Hub у вашому браузері.
- Пошук образів: введіть назву образу або ключові слова, пов'язані з вашим проєктом, у рядок пошуку. Наприклад, для пошуку образу Nginx введіть "nginx" і натисніть Enter.
- Перегляд результатів: у результатах пошуку з'являться підходящі образи. Офіційні образи позначені як "Official" і підтримуються Docker або відповідними організаціями. Образи від інших користувачів мають зазначення імені користувача або організації.
- Вибір образу: клікніть на цікавий для вас образ, щоб ознайомитися з його описом, доступними тегами, інструкціями з використання і іншою корисною інформацією.
2. Пошук образів через командний рядок
Docker також дозволяє шукати образи безпосередньо з командного рядка за допомогою команди docker search.
Приклад команди:
docker search nginx
Ця команда виведе список образів, що містять nginx у назві або описі. У виводі будуть зазначені назва образу, його опис, кількість зірок (рейтинг), позначка офіційного статусу та інформація про автоматичні збірки.
Приклад виводу:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 13764 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for... 2135 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM... 819 [OK]
9.3 Завантаження образів
Після того як ти знайшов потрібний образ, його можна завантажити на твій локальний комп'ютер за допомогою команди docker pull.
1. Завантаження конкретного образу
Щоб завантажити конкретний образ, використовуй наступний синтаксис:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Де:
- NAME: ім'я образу.
- TAG: (необов'язково) тег образу. За замовчуванням використовується тег
latest, якщо не вказано інший. - @DIGEST: (необов'язково) SHA256-ідентифікатор образу.
Приклад завантаження образу:
Цей приклад завантажить останній образ nginx з тегом latest.
docker pull nginx:latest
2. Завантаження образу з конкретним тегом
Якщо тобі потрібен конкретний тег образу, вкажи його після двокрапки. Цей приклад завантажить образ Ubuntu версії 20.04.
docker pull ubuntu:20.04
3. Перевірка завантажених образів
Після завантаження образу ти можеш перевірити, які образы знаходяться на твоєму локальному комп'ютері, за допомогою команди docker images.
Приклад команди:
Вивід команди покаже список всіх завантажених образів із зазначенням репозиторія, тега, ідентифікатора образу, дати створення і розміру.
docker images
9.4 Приклади використання готових образів
1. Запуск веб-сервера Nginx
Після завантаження образу Nginx ти можеш швидко запустити контейнер на його основі.
Приклад:
Цей приклад запускає контейнер Nginx у фоновому режимі та перенаправляє порт 80 контейнера на порт 8080 хост-машини. Тепер ти можеш отримати доступ до веб-сервера Nginx, відкривши браузер і ввівши http://localhost:8080.
docker run -d -p 8080:80 nginx
2. Запуск бази даних MySQL
Docker Hub пропонує готові образи баз даних, таких як MySQL, що дозволяє легко розгортати бази даних для розробки та тестування.
Приклад:
Цей приклад запускає контейнер MySQL, встановлює пароль для користувача root та перенаправляє порт 3306 контейнера на порт 3306 хост-машини.
docker run -d -p 3306:3306 --name my_mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest
3. Використання образу Redis для кешування
Redis — популярна система кешування, і Docker Hub надає готовий образ Redis, який можна використовувати для швидкого розгортання.
Приклад:
Цей приклад запускає контейнер Redis і перенаправляє порт 6379 контейнера на порт 6379 хост-машини.
docker run -d -p 6379:6379 --name my_redis redis:latest
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ