Контейнеры, образы и реестры Docker
Совет
Это содержимое является фрагментом из электронной книги, архитектуры микрослужб .NET для контейнерных приложений .NET, доступных в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно читать в автономном режиме.
При использовании Docker разработчик создает приложение или службу и упаковывает приложение или службу и их зависимости в образ контейнера. Образ — это статическое представление приложения или службы, а также их конфигурации и зависимостей.
Для запуска приложения или службы создается экземпляр образа приложения, чтобы создать контейнер, который будет запущен на узле Docker. Контейнеры изначально проверяются в среде разработки или на ПК.
Разработчикам следует хранить образы в реестре, который выступает в качестве библиотеки образов и необходим при развертывании на оркестраторы в рабочей среде. Docker поддерживает общедоступный реестр с помощью Docker Hub. Другие поставщики предлагают реестры для различных коллекций образов, включая Реестр контейнеров Azure. Кроме того, организации могут развернуть локальные частные реестры для своих образов Docker.
На рисунке 2-4 показано, как образы и реестры в Docker связаны с другими компонентами. На нем также показано несколько вариантов реестра от поставщиков.
Рис. 2-4. Классификация основных понятий и терминов Docker
Реестр напоминает книжную полку. В нем хранятся образы, которые можно извлекать для создания контейнеров, необходимых для запуска служб или веб-приложений. Частные реестры Docker могут храниться в локальной среде или в общедоступном облаке. Docker Hub — это общедоступный реестр, поддерживаемый Docker. Помимо решения Docker Trusted Registry корпоративного уровня можно использовать Реестр контейнеров Azure, предлагаемый Azure. AWS, Google и другие компании также предлагают свои реестры контейнеров.
Размещение образов в реестре позволяет хранить статические и неизменяемые фрагменты приложений, включая всех их зависимости на уровне платформы. Эти образы можно добавить в систему управления версиями и развернуть в нескольких средах, таким образом, каждый образ представляет согласованную единицу развертывания.
Частные реестры образов, размещенные локально или в облаке, рекомендуется использовать, если:
Ваши образы не могут быть открыты для общего доступа по соображениям конфиденциальности.
Вам необходимо обеспечить минимальную сетевую задержку между образами и выбранной средой развертывания. Например, если рабочая среда представляет собой облако Azure, вы, вероятно, захотите разместить образы в Реестре контейнеров Azure, чтобы сетевая задержка была минимальной. Точно так же, если рабочая среда является локальной, вы можете развернуть локальный доверенный реестр Docker в той же локальной сети.