Введение в Docker Hub и все, что вы должны знать о нем
В этом руководстве мы узнаем о Docker Hub, в том числе о том, как его использовать, как создать собственный образ и как он помогает при публикации и переносе изображений в Docker Hub и из него. И мы также потратим некоторое время на изучение некоторых популярных репозиториев на Docker Hub.
Предпосылки
Вам требуется базовое понимание Docker, знакомое с окружением Windows и Linux. В этом руководстве будет использоваться инструмент Docker Desktop для выполнения текущих упражнений, т.е. Для создания и передачи образа в Docker Hub. Пользователи Windows и Mac могут скачать и установить его отсюда, а пользователи Linux перейдут по этой ссылке.
Что такое Docker Hub?
Docker Hub представляет собой открытый репозиторий образов (хранилище) контейнеров, которая поддерживается Docker Inc.
Он позволяет нам извлекать и добавлять Dcoker образы в Docker Hub. Его также можно сравнить с GitHub, где мы получаем и отправляем наш исходный код, но в случае Docker Hub мы загружаем или публикуем наши образы контейнеров.
Это облачный онлайн-репозиторий, в котором хранятся два типа репозиториев: общедоступный и частный репозиторий. Общедоступные репозитории доступны каждому, но частный доступен заинтересованному владельцу репозиториев; Кроме того, с этим связана стоимость, если мы храним более определенного количества репозиториев как частные.
Особенности Docker Hub
Docker Hub предлагает следующие функции.
1. Репозитории образов
Это помогает нам находить и извлекать образы контейнеров из Docker Hub.
Он также помогает нам передавать образы в качестве публичного или частного хранилища в Docker Hub.
2. Команда и организации
Позволяет нам создавать рабочие группы и выдавать репозитории как частные, которые доступны для использования только в нашей организации. Таким образом, мы управляли доступом к нашим частным репозиториям образов контейнеров.
3. Интеграция c GitHub и Bitbucket
Позволяет интеграцию с репозиториями исходного кода, такими как GitHub и BitBucket.
4. Автоматизированные сборки
Если какие-либо изменения в исходном коде были перенесены в репозитории исходного кода, он автоматически обнаруживает и создает образы контейнеров из GitHub или BitBucket и отправляет их в Docker Hub.
5. Webhooks
Как только мы успешно выдвинули наши изображения с помощью вебхуков (Webhooks), он запускает действие по интеграции Docker Hub с другими сервисами.
6. Официальные и издательские образы
Высококачественные образы, предоставляемые докерами, считаются официальными образами, и их можно извлекать и использовать.
Аналогичным образом, высококачественные образы, предоставляемые сторонними поставщиками, являются образами издателя, также называемыми сертифицированными образами, что дает поддержку и гарантию совместимости с Docker enterprise. Мы обсудим больше сертифицированных изображений позже в этой статье.
Создание первого Docker репозитория
Этот шаг требует входа в Docker Hub с использованием ваших учетных данных. Если у вас нет учетной записи, вы можете создать ее, нажав кнопку «Регистрация» на веб-странице. После того, как вы вошли в систему, вы можете создать репозиторий, нажав « Создать репозиторий» на странице приветствия.
- После нажатия на кнопку Создать репозиторий будет запрошено имя, задачте имя вашему репозиторию.
- Выберите опцию видимости из общего (public) или частного(private).
Мы также можем интегрировать наши репозитории исходного кода, такие как GitHub и BitBucket, с помощью настроек сборки, но это не обязательно и может быть сделано на более позднем этапе.
- Как только все будет сделано, нажмите Создать (Create).
Поздравляем! Вы создали свой первый репозиторий, который будут выглядеть следующим образом.
Docker Hub предоставляет нам только один частный репозиторий бесплатно. Хотя, если нам нужно больше частных репозиториев, мы можем обновить нашу учетную запись до платного плана.
Теперь откройте Docker Desktop tool/terminal Docker, над downloaded and installed, и войдите в Docker Hub с помощью команды.
docker login
Поиск Docker образа
Есть два способа поиска в общедоступных репозиториях и изображениях из Docker Hub, то есть мы можем либо искать их на веб-сайте Docker Hub, либо мы можем использовать инструмент командной строки и выполнить команду ниже. Предположим, мы хотим найти образ хранилища MySQL.
docker search mysql
Загрузка Docker образа
Мы можем загрузить образ из команды Docker Hub, используя команду pull
следующим образом:
docker pull mysql
Если у нас уже есть образ mysql
на нашей машине, то приведенная выше команда автоматически обновит образ до последней версии. Здесь нужно помнить одну вещь: если мы выполним вывод нашей команды поиска docker, на Docker Hub будет много образов MySQL. Но выбор зависит от нас, какой из них использовать в зависимости от нашего варианта использования, и нам нужно найти подходящий вариант.
Допустим, мы хотим получить образ bitnami/mysql
.
docker pull bitnami/mysql
Создание Docker образа
Этот процесс требует Dockerfile. Мы можем рассматривать Dockerfile как руководство по эксплуатации, которое говорит Docker, что собирать (подобие requirements.txt в python). Короче говоря, это файл конфигурации, в котором хранится инструкция по сборке.
Как это работает?
Docker читает инструкцию из Dockerfile и автоматически создает образы. Образ Docker является многоуровневой файловой системой и состоит из нескольких слоев, доступных только для чтения, и каждый слой образа Docker представляет инструкции файла Docker. Давайте выполните следующие шаги, чтобы создать образ с помощью Dockerfile.
Создайте Dockerfile, который определяет конфигурацию нашего приложения.
sudo vim Dockerfile
Примечание. Имя файла должно быть Dockerfile с большой латинской буквы D.
FROM ubuntu:16.04
MAINTAINER someuser@somedomain.com
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 /repo-name
docker build -t asadali08537/first-repo .
В приведенной выше команде имя изображения и символ точка « . » указывает текущий рабочий каталог. Это означает, что Docker ищет текущий каталог файла Docker. Опция « -t » используется для обозначения образа.
Вывод будет похожий на:
Теперь давайте проверим наш образ, запустив его с помощью команды запуска docker.
docker run asadali08527/first-repo
Выполнение вышеупомянутой команды попросит ваш Docker образ успешно установить MySQL на ваш компьютер со всеми необходимыми обновлениями, и, наконец, он также отобразит сообщение.
Заливаем образ на Docker Hub
Как только наш образ был успешно создан и запущен, мы можем отправить его в Docker Hub с помощью команды push
.
docker push asadali08527/first-repo
Мы можем проверить теги образа и статус на Docker Hub, который будет выглядеть примерно так.
Что такое DOCKER CERTIFIED образы ?
Это официальные образы поставщиков или участников. Образы может быть сертифицирован Docker Hub, только если его содержимое соответствует правилам, стандартам и законам, предусмотренным Docker Hub. Короче говоря, этот образ должен пройти определенные базовые тесты.
Docker Hub предоставляет инструмент inspectDockerImage
, с помощью которого поставщик может самостоятельно сертифицировать образы и плагины (обычно поставщик или участник публикует свои плагины для регистрации томов и сетей).
Примечание:
Чтобы опубликовать наш образ в качестве сертифицированного Docker образ, сначала мы должны самостоятельно сертифицировать и протестировать наш образ и плагин с помощью инструмента inspectDockerImage, после того как мы сертифицировали и успешно протестировали, после отправки Docker Hub подтвердит его. Если наш контент требует несертифицированной среды, он не может быть опубликован как сертифицированный ни при каких обстоятельствах.
Популярные образы на DockerHub
На Docker Hub доступно множество популярных и оптимизированных изображений.
Популярность этих образов зависит от различных факторов, таких как спрос, присутствие на рынке, рейтинги, оценки удовлетворенности и т.д. Для получения подробного списка самых популярных репозиториев перейдем на веб-сайт Docker Hub.
Использование образа также зависит от ОС и ее архитектуры. Если мы знаем, что для какой ОС и ее архитектуры будут использоваться извлеченные образы, то мы должны рассмотреть следующие ключевые факторы, прежде чем извлекать образ.
- Ищите конкретную версию, используя теги (в основном, последние).
- Выберите тот, который имеет максимальные загрузки и звезды.
- Проверьте его обновления (когда он был обновлен последний раз).
- Если возможно, проверьте его тип: проверенный издатель или официальный (Docker Certified).
Что такое Webhooks ?
Webhook - это специальные функции, которые работают с событиями, и это способ для приложения предоставлять информацию в режиме реального времени другому приложению. В настоящее время почти каждое приложение предоставляет функцию webhook, поэтому Docker Hub также имеет эту функцию.
Это HTTP push API, запускаемый пользовательскими событиями. Мы можем использовать webhook в Docker, чтобы уведомить приложение или службу, которая использует соответствующие образы. Как правило, мы настраиваем веб-хук с докером как конвейер событий, так что любая загрузка новых образов вызовет тестирование приложений для запуска подчеркнутых тестовых случаев.
Как только результат теста будет успешным, он вызовет другое событие, которое будет развертыванием контейнера, а после успешного завершения развертывания запустит другие события, чтобы зарегистрировать сделанные изменения.
Заключение
Я верю, что теперь у вас есть четкое понимание Docker Hub и того, как вы можете искать, создавать и заливать (пушить) образы. Имейте в виду, что если вы выбериnе общедоступные (public) образs, они будут видны всем.