Belov Solutions

Работа с реестрами Docker: подробное руководство

Введение

Эта статья объясняет, как работать с реестрами Docker, включая выгрузку собственных образов в Docker Hub, использование тегов и управление пространствами имён. Вы узнаете, как делиться своими образами и загружать образы других пользователей. Примеры приведены для Linux и Windows.

Работа с Docker Hub

Docker Hub — это основной реестр для хранения и распространения Docker-образов. Вы можете искать образы через командную строку или на сайте registry.hub.docker.com. Например, образ debian, использованный ранее, был загружен из Docker Hub.

Для выгрузки собственного образа в Docker Hub необходимо зарегистрироваться (на сайте или с помощью команды docker login) и связать образ с вашим репозиторием.

Реестры, репозитории, образы и теги

Docker использует иерархическую систему для хранения образов:

  • Реестр (registry): Сервис для хранения и распространения образов. По умолчанию используется Docker Hub.
  • Репозиторий (repository): Набор связанных образов, обычно разных версий одного приложения.
  • Тег (tag): Алфавитно-цифровой идентификатор образа в репозитории, например, latest или stable.

Пример команды для загрузки образа:

Linux/Windows

docker pull amouat/revealjs:latest

Эта команда загружает образ с тегом latest из репозитория amouat/revealjs в реестре Docker Hub.

Выгрузка образа в Docker Hub

Для выгрузки образа cowsay добавьте в Dockerfile информацию об авторе с помощью инструкции MAINTAINER:

FROM debian
MAINTAINER John Smith 
RUN apt-get update && apt-get install -y cowsay fortune
COPY entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]

Создайте и выгрузите образ в Docker Hub, используя ваше имя пользователя (замените amouat на ваше):

Linux/Windows

docker build -t amouat/cowsay .
docker login
docker push amouat/cowsay
The push refers to a repository [docker.io/amouat/cowsay] (len: 1)
e8728c722290: Image successfully pushed
5427ac510fe6: Image successfully pushed
4a63ead8b301: Image successfully pushed
73805e6e9ac7: Image successfully pushed
c90d655b99b2: Image successfully pushed
30d39e59ffe2: Image successfully pushed
511136ea3c5a: Image successfully pushed
latest: digest: sha256:bfd17b7c5977520211cecb202ad73c3ca14acde6878d9ffc81d95...

Если тег не указан, образу автоматически присваивается тег latest. Для указания другого тега добавьте его после имени репозитория, например:

docker build -t amouat/cowsay:stable

После выгрузки другие пользователи могут загрузить образ:

Linux/Windows

docker pull amouat/cowsay

Закрытые частные репозитории

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

Пространства имён для образов

Docker-образы делятся на три пространства имён:

  • User: Имена вида amouat/revealjs, где образы принадлежат конкретному пользователю в Docker Hub (например, amouat). Это публичные или частные образы, созданные пользователями.
  • Root: Имена без префиксов, например, debian или ubuntu. Это официальные образы, управляемые Docker Inc., но часто поддерживаемые третьими сторонами (например, образ nginx поддерживается компанией nginx).
  • Сторонние реестры: Имена с префиксом хоста или IP-адреса, например, localhost:5000/wordpress. Это образы из сторонних реестров, таких как локальные реестры или сервисы вроде quay.io.

Такое разделение помогает различать происхождение образов и избегать путаницы.

Заключение

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

Отзывы

Оставить отзыв

Ваша эл. почта не будет опубликована