JavaRush /Курсы /Модуль 2: Fullstack /Работа с Docker Hub

Работа с Docker Hub

Модуль 2: Fullstack
12 уровень , 8 лекция
Открыта

9.1 Повторное знакомство с Docker Hub

Давайте поближе познакомимся с Docker Hub. Напомню, это основной публичный реестр Docker, где пользователи могут хранить, обмениваться и находить готовые образы контейнеров. Платформа предоставляет доступ к миллионам контейнеров, созданных как официальными организациями, так и сообществом. В этой лекции мы разберём, как эффективно искать и загружать готовые образы с Docker Hub.

Основные задачи сервиса Docker Hub

Docker Hub — это облачный сервис, который позволяет загружать образы в централизованное хранилище и извлекать их оттуда. Сервис служит площадкой, где разработчики могут делиться своими образами и использовать решения, созданные другими. Основные функции Docker Hub включают:

  1. Публичные и приватные репозитории: Возможность хранить образы как в открытом доступе для всех, так и в ограниченном доступе для определённых пользователей.
  2. Автоматические сборки (automated builds): Интеграция с системами контроля версий, такими как GitHub, для автоматической сборки образов при каждом изменении кода.
  3. Веб-хуки (webhooks): Настройка автоматических действий, которые выполняются при обновлении образов.

9.2 Поиск готовых образов

1. Использование веб-интерфейса Docker Hub

  1. Перейдите на сайт Docker Hub: откройте Docker Hub в вашем браузере.
  2. Поиск образов: введите название образа или ключевые слова, связанные с вашим проектом, в строку поиска. Например, для поиска образа Nginx введите "nginx" и нажмите Enter.
  3. Просмотр результатов: в результатах поиска отобразятся подходящие образы. Официальные образы отмечены как "Official" и поддерживаются Docker или соответствующими организациями. Образы от других пользователей имеют указание имени пользователя или организации.
  4. Выбор образа: щёлкните на интересующий вас образ, чтобы ознакомиться с его описанием, доступными тегами, инструкциями по использованию и другой полезной информацией.

2. Поиск образов через командную строку

Docker также позволяет искать образы непосредственно из командной строки с помощью команды docker search.

Пример команды:

Terminal


docker search nginx

Эта команда выведет список образов, содержащих nginx в названии или описании. В выводе будут указаны имя образа, его описание, количество звёзд (рейтинг), отметка официального статуса и информация об автоматических сборках.

Пример вывода:

Terminal


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.

Terminal


docker pull nginx:latest

2. Загрузка образа с конкретным тегом

Если вам нужен конкретный тег образа, укажите его после двоеточия. Этот пример загрузит образ Ubuntu версии 20.04.

Terminal

docker pull ubuntu:20.04

3. Проверка загруженных образов

После загрузки образа вы можете проверить, какие образы находятся на вашей локальной машине, с помощью команды docker images.

Пример команды:

Вывод команды покажет список всех загруженных образов с указанием репозитория, тега, идентификатора образа, даты создания и размера.

Terminal


docker images

9.4 Примеры использования готовых образов

1. Запуск веб-сервера Nginx

После загрузки образа Nginx вы можете быстро запустить контейнер на его основе.

Пример:

Этот пример запускает контейнер Nginx в фоновом режиме и перенаправляет порт 80 контейнера на порт 8080 хост-машины. Теперь вы можете получить доступ к веб-серверу Nginx, открыв браузер и введя http://localhost:8080.

Terminal

docker run -d -p 8080:80 nginx

2. Запуск базы данных MySQL

Docker Hub предоставляет готовые образы баз данных, таких как MySQL, что позволяет легко развертывать базы данных для разработки и тестирования.

Пример:

Этот пример запускает контейнер MySQL, устанавливает пароль для пользователя root и перенаправляет порт 3306 контейнера на порт 3306 хост-машины.

Terminal

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 хост-машины.

Terminal

docker run -d -p 6379:6379 --name my_redis redis:latest
3
Задача
Модуль 2: Fullstack, 12 уровень, 8 лекция
Недоступна
Поиск образа через командную строку
Поиск образа через командную строку
3
Задача
Модуль 2: Fullstack, 12 уровень, 8 лекция
Недоступна
Загрузка образа с Docker Hub
Загрузка образа с Docker Hub
3
Задача
Модуль 2: Fullstack, 12 уровень, 8 лекция
Недоступна
Запуск контейнера на основе образа MySQL
Запуск контейнера на основе образа MySQL
3
Задача
Модуль 2: Fullstack, 12 уровень, 8 лекция
Недоступна
Запуск веб-сервера Nginx
Запуск веб-сервера Nginx
1
Опрос
Управление ресурсами контейнеров, 12 уровень, 8 лекция
Недоступен
Управление ресурсами контейнеров
Управление ресурсами контейнеров
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 11
4 октября 2025
за "--publish" надо кофе в лицо плеснуть.. 😡 Тест: "Какое значение параметра --memory-swap нужно установить, чтобы запретить контейнеру использовать подкачку?" Правильный ответ - не правильный. "-1" делает использование файла подкачки безлимитным