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
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ