Подтвердить что ты не робот

Разница между реестром и хранилищем Docker

Я смущен относительно разницы между реестрами докеров и репозиториями. Похоже, что документация Docker использует два слова взаимозаменяемо. Кроме того, репозитории иногда упоминаются как изображения, например, из их документов:

Чтобы подтолкнуть репозиторий к его реестру, вы должны иметь имя изображение или передали ваш контейнер названному изображению, как мы видели здесь.

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

Как вы можете перетащить репозиторий в реестр? Не подталкиваете ли вы изображение к репозиторию?

4b9b3361

Ответ 1

Реестр Docker - это служба, которая хранит ваши изображения докеров.

Реестр докеров может быть размещен сторонним, как государственным или частным реестром, как один из следующих реестров:

или вы можете разместить реестр докеров самостоятельно/ (подробнее см. https://docs.docker.com/docker-trusted-registry/).

Репозиторий Docker представляет собой набор различных изображений докеров с тем же именем, которые имеют разные теги. Тег - это буквенно-цифровой идентификатор изображения в репозитории.

Например, см. https://hub.docker.com/r/library/python/tags/. Для официального изображения python существует множество разных тегов, эти теги являются членами официального репозитория python в Docker Hub. Docker Hub является реестром докеров, который размещается Docker.

Чтобы узнать больше:

Ответ 2

Из книги Использование Docker, разработка и развертывание программного обеспечения с контейнерами

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

Существует иерархическая система для хранения изображений.  Используется следующая терминология:

Реестр

Служба, отвечающая за размещение и распространение изображений. Реестр по умолчанию - это Docker Hub.

Репозиторий

Коллекция связанных изображений (обычно предоставляющих разные версии одного и того же приложения или службы).

Тег

Алфавитно-цифровой идентификатор, прикрепленный к изображениям в репозитории (например, 14.04 или стабильный).

Итак, команда docker pull amouat/revealjs:latest загрузит изображение, помеченное последним в репозиторий amouat/revealjs из реестра Docker Hub.

Ответ 3

Дополняя информацию:

  • Обычно вы пересылаете репозиторий в реестр (и все изображения, которые являются его частью). Но вы можете вставить одно изображение в реестр. Во всех случаях вы используете docker push.
  • Изображение имеет 12-шестнадцатеричный идентификатор изображения, но также идентифицируется: namespace/repo-name:tag
  • Полное имя изображения может быть дополнительно префикс имени и порта хоста реестра: myregistryhost:5000/namespace/repo-name:tag
  • Общим соглашением об именах является использование имени пользователя реестра как того, что я называл "пространство имен".

Ответ 4

Репозиторий докеров - это милая комбинация registry и image.

docker tag foo <registry>/<image>:<tag>

совпадает с

docker tag foo <repository>:<tag>