Введение
Эта статья объясняет, как работать с реестрами 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, использовать теги и работать с пространствами имён. Эти знания позволяют делиться своими образами и загружать образы других пользователей. В следующих статьях мы изучим настройку закрытых реестров и более сложные сценарии.
Отзывы