Меня смущает разница между реестрами докеров и репозиториями. Похоже, что в документации Docker эти два слова используются как синонимы. Кроме того, репозитории иногда называют изображениями, например, из их документов:
Чтобы отправить репозиторий в его реестр, вам необходимо присвоить образу имя или привязать свой контейнер к именованному образу, как мы видели здесь.
Теперь вы можете отправить этот репозиторий в реестр, обозначенный его именем или тегом.
Как вы можете поместить репозиторий в реестр? Разве вы не запихиваете образ в репозиторий?
git
, то - Docker Registry (по умолчаниюhub.docker.com
) => GitHub (github.com
); - Репозиторий Docker => Репозиторий Git; - Docker Tag => Git Ref (Branch / Tag)Ответы:
Реестр Docker - это служба, которая хранит ваши образы докеров.
Реестр Docker может быть размещен третьей стороной в виде публичного или частного реестра, например одного из следующих реестров:
или вы можете самостоятельно разместить реестр докеров
(подробнее см. https://docs.docker.com/ee/dtr/ ).
Репозиторий Docker - это набор разных образов докеров с одинаковыми именами и разными тегами. Тег - это буквенно-цифровой идентификатор изображения в репозитории.
Например, см. Https://hub.docker.com/r/library/python/tags/ . Для официального образа python существует множество различных тегов, все эти теги являются членами официального репозитория python в Docker Hub. Docker Hub - это реестр Docker, размещенный на Docker.
Чтобы узнать больше, прочтите:
источник
Из книги Использование Docker, Разработка и развертывание программного обеспечения с контейнерами
Реестры, репозитории, изображения и теги
Существует иерархическая система хранения изображений. Используется следующая терминология:
Реестр
Служба, отвечающая за размещение и распространение изображений. Реестр по умолчанию - Docker Hub.
Репозиторий
Коллекция связанных изображений (обычно представляющих разные версии одного и того же приложения или службы).
Тег
Буквенно-цифровой идентификатор, прикрепленный к изображениям в репозитории (например, 14.04 или стабильный).
Таким образом, команда
docker pull amouat/revealjs:latest
загрузит образ, помеченный последним вamouat/revealjs
репозитории, из реестра Docker Hub.источник
ubuntu:latest
иubuntu:16.04
есть одинаковыеImage ID
, а это значит, что это всего лишь несколько тегов для одного и того же изображения.docker pull
, которая частично гласит: «Чтобы загрузить конкретный образ или набор образов (например, репозиторий), используйтеdocker pull
. Если тег не предоставлен, Docker Engine использует:latest
тег по умолчанию. " Как же тогда можно «загрузить… набор изображений (т.е. репозиторий)»? 🤔Дополняя информацию:
docker push
.namespace/repo-name:tag
myregistryhost:5000/namespace/repo-name:tag
источник
image-name
. Формат должен бытьuser-name/repo-name:tag
согласно документации Docker . (Хотелось бы, чтобы Docker использовал лучшую терминологию, это довольно сбивает с толку, и они даже не всегда последовательны).docker info |grep Registry
Репозиторий докеров - это симпатичная комбинация
registry
иimage
.такой же как
источник
Реестр Docker - это служба, которую вы можете разместить самостоятельно (доверенной и частной) или позволить концентратору докеров быть хостом для этой службы. Обычно, если ваше программное обеспечение является коммерческим, вы размещаете его как «Частный и надежный» реестр. Для разработчиков Java это несколько аналогично настройке Maven Artifactory.
Docker Repository - это набор изображений с тегами. Например, вы могли пометить 5
ubuntu:latest
изображений:а) Редактор нано (image1_tag: v1)
б) Специальное программное обеспечение 1 (image1_tag: v2)
в) Судо (image1_tag: v3)
г) демон apache http (image1_tag: v4)
д) кот (image1_tag: v5)
Вы можете использовать
docker push
команду, чтобы отправить каждое из вышеуказанных изображений в ваш репозиторий. Пока имена репозиториев совпадают, они будут успешно отправлены, появятся в выбранном вами репозитории и правильно помечены.Теперь ваш вопрос: «Итак, где находится этот репозиторий / кто управляет службой»? Вот тут-то и появляется Docker Registry. По умолчанию вы получите реестр концентратора докеров (с открытым исходным кодом), который вы можете использовать для хранения своего частного / общедоступного репозитория. Таким образом, без каких-либо изменений ваши изображения будут отправлены в ваш частный репозиторий в Docker Hub. Пример вывода при нажатии тегов изображения следующий:
И если вы введете сразу,
docker images --digests -a
вы можете подтвердить, что ваши отправленные теги изображений теперь показывают новую подпись против частного репозитория, управляемого реестром концентратора докеров.источник
Docker Hub и другие сторонние службы хостинга репозиториев называются «реестрами». В реестре хранится набор репозиториев.
Поскольку в реестре может быть множество репозиториев, а в репозитории может быть много разных версий одного и того же образа, которые индивидуально версируются с помощью тегов.
источник
Реестр образов Docker - это место для хранения всех ваших образов Docker. Реестр образов позволяет при необходимости отправлять и извлекать образы контейнеров.
Реестры могут быть частными или публичными. Когда реестр является общедоступным, образы доступны для всего мира, тогда как в частном реестре образы доступны только членам предприятия или группы.
Реестр позволяет демону Docker легко извлекать и запускать ваши образы Docker.
источник