Размещение образов на Docker Hub

Не так давно вы узнали как с помощью командной строки запускать Docker на локальном хосте. Вы научились загружать образы что бы создать контейнер из существующих образов и вы узнали как создавать собственные образы.

Далее вы узнаете как использовать Docker Hub для упрощения и улучшения ваших рабочих процессов Docker.

Docker Hub публичный реестр поддерживаемый Docker, Inc. Он содержит образы которые вы можете скачать и использовать для создания контейнеров. А также обеспечивает проверку подлинности, структуру рабочей группы, инструменты рабочего процесса, такие как webhooks, триггеры и инструменты приватности, как частных хранилищ для хранения образов, которые вы не хотите делать публичными.

Docker команды и Docker Hub

Docker сам обеспечивает доступ к сервисам Docker Hub через команды docker search, pull, login и push. В этой главе мы покажем как эти команды работают.

Создание аккаунта и авторизация

Перед тем как вы попробуете консольные команды, если у вас еще нет, создайте Docker ID. Вы можете сделать это на Docker Hub. Если у вас есть Docker ID, войдите в ваш аккаунт с помощью консольных команд Docker Engine:

$ docker login

Команда login сохраняет ваш Docker ID и авторизационные данные в $HOME/.docker/config.json. Если вы используете cmd в Windows, данные сохраняются в %HOME%\.docker\config.json ; для пользователей PowerShell в $env:Home\.docker\config.json.

После того как вы залогинились из командной строки, вы можете выполнить команду commit или push для взаимодействия с вашими репозиториями на Docker Hub.

Поиск образов

Вы можете искать образы в реестре Docker Hub с помощью поиска на сайте или с помощью интерфейса командной строки. Поиск может искать образы по названию, имени пользователя или описанию:

$ docker search centos

NAME           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos         The official build of CentOS                    1223      [OK]
tianon/centos  CentOS 5 and 6, created using rinse instea...   33
...

Вы можете увидеть два примерама результатов для: centos и tianon/centos. Второй результат взят из общего репозитория пользователя tianon/, в то время как первый результат, centos, взят из доверенного репозитория верхнего уровня (подробнее читайте официальные репозитории). Символ/ разделяет имя пользователя от названия репозитория.

После того как вы нашли необходимый образ, вы можете скачать его командой docker pull <imagename>:

$ docker pull centos

Using default tag: latest
latest: Pulling from library/centos
f1b10cd84249: Pull complete
c852f6d61e65: Pull complete
7322fbe74aa5: Pull complete
Digest: sha256:90305c9112250c7e3746425477f1c4ef112b03b4abe78c612e092037bfecc3b7
Status: Downloaded newer image for centos:latest

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

Указание версий

Команда docker pull centos эквивалентна команде docker pull centos:latest. Для загрузки образа который не является по умолчанию самой последней версией, вы должны точно указать требуемую версию.

К примеру, для загрузки 5 версии centos используйте docker pull centos:centos5. В этом примере, centos5 тег указывающий версию репозитория centos.

Для поиска списка тегов доступных версий репозитория перейдите в реестр Docker Hub.

Выгрузка на Docker Hub

Любой может загружать образы из реестра Docker Hub, но если вы хотите сделать доступным свой собственный образ, вам необходимо зарегистрироваться.

Выгрузка репозитория на Docker Hub

Для того что бы выгрузить репозиторий в реестр, вам необходимо назвать образ или конвертировать ваш контейнер в именованный образ как мы это делали здесь здесь.

Теперь вы можете выгрузить (push) репозиторий в реестр соответствующий его имени и тегу.

$ docker push yourname/newimage

Образ будет загружен и доступен для использования вашим товарищам по команде и/или сообществу.

Особенности Docker Hub

Давайте подробнее рассмотрим некоторые из особенностей Docker Hub. Вы можете найти более подробную информацию здесь.

  • Приватные репозитории
  • Организации и команды
  • Автоматическая сборка
  • Webhooks

Приватные репозитории

Бывает так, что вы не хотите делать общедоступными ваши образы. Docker Hub позволяет вам создавать приватные репозитории. Тарифные планы вы можете посмотреть на официальном сайте Docker Hub.

Организации и команды

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

Автоматическая сборка

Автоматическая сборка и обновление образов из GitHub или Bitbucket, непосредственно на Docker Hub. Эта функция работает посредством добавления commit hook вашего GitHub или Bitbucket репозитория, вызывая сборку и обновление когда вы делаете выгрузку коммита (push).

Настройка автоматической сборки

  1. Создайте Docker Hub аккаунт и авторизуйтесь.
  2. Свяжите GitHub или Bitbucket аккаунт со связанными аккаунтами и сервисами.
  3. Выберите «Create Automated Build» из выпадающего меню «Create».
  4. Выберите GitHub или Bitbucket проект с Dockerfile по которому будет осуществляться сборка.
  5. Выберите ветку из которой будет осуществляться сборка (по умолчанию ветка master).
  6. Дайте имея автоматической сборки.
  7. Назначьте тег для сборки.
  8. Укажите местоположение Dockerfile, по умолчанию /.

Когда автоматическая сборка настроена, через несколько минут она будет произведена и вы сможете увидеть ее на Docker Hub. Синхронизация с GitHub и Bitbucket будет оставаться активной, пока вы ее не отключите.

Что бы проверить состояние репозитория с автоматической сборкой, кликните по названию репозитория «Your Repositories». Автоматическая сборка помечена специальной иконкой после названия репозитория. В странице сведений о репозитории, вы можете нажать на вкладке «Build Details» для просмотра состояния и всех сборках, произведенных в Docker Hub.

После того как вы создали автоматическую сборку ее можно отключить или удалить. Однако вы не можете выгружать в автоматическую сборку изменения с помощью команды docker push. Вы можете только управлять ей делая коммит кода в репозитории GitHub или Bitbucket.

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

Вызов сборки

Автоматическая сборка также может быть вызвана через URL на Docker Hub. Это позволяет произвести автоматическую сборку по требованию.

Webhooks

Webhooks прикреплены к вашим хранилищам и позволяют инициировать события, когда образ обновляется в репозитории. С webhook вы можете указать целевой URL и полезную нагрузку JSON, который будет доставлен, когда изображение выгружается.

Читайте документацию Docker Hub для подробной информации о webhooks

Следующий шаг

Вы прошли обучение и готовы к использованию Docker!


Комментарии:

Комментариев нет, желаете стать первым?

Пожалуйста, авторизуйтесь что бы оставлять комментарии.