Контейнеры, образы и реестры Docker

Совет

Это содержимое является фрагментом из электронной книги, архитектуры микрослужб .NET для контейнерных приложений .NET, доступных в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно читать в автономном режиме.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

При использовании Docker разработчик создает приложение или службу и упаковывает приложение или службу и их зависимости в образ контейнера. Образ — это статическое представление приложения или службы, а также их конфигурации и зависимостей.

Для запуска приложения или службы создается экземпляр образа приложения, чтобы создать контейнер, который будет запущен на узле Docker. Контейнеры изначально проверяются в среде разработки или на ПК.

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

На рисунке 2-4 показано, как образы и реестры в Docker связаны с другими компонентами. На нем также показано несколько вариантов реестра от поставщиков.

A diagram showing the basic taxonomy in Docker.

Рис. 2-4. Классификация основных понятий и терминов Docker

Реестр напоминает книжную полку. В нем хранятся образы, которые можно извлекать для создания контейнеров, необходимых для запуска служб или веб-приложений. Частные реестры Docker могут храниться в локальной среде или в общедоступном облаке. Docker Hub — это общедоступный реестр, поддерживаемый Docker. Помимо решения Docker Trusted Registry корпоративного уровня можно использовать Реестр контейнеров Azure, предлагаемый Azure. AWS, Google и другие компании также предлагают свои реестры контейнеров.

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

Частные реестры образов, размещенные локально или в облаке, рекомендуется использовать, если:

  • Ваши образы не могут быть открыты для общего доступа по соображениям конфиденциальности.

  • Вам необходимо обеспечить минимальную сетевую задержку между образами и выбранной средой развертывания. Например, если рабочая среда представляет собой облако Azure, вы, вероятно, захотите разместить образы в Реестре контейнеров Azure, чтобы сетевая задержка была минимальной. Точно так же, если рабочая среда является локальной, вы можете развернуть локальный доверенный реестр Docker в той же локальной сети.