Docker Architecture: почему это важно?



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

Многие из нас считают, что Docker является неотъемлемой частью . Итак, за этим невероятным инструментом должна стоять потрясающая архитектура. В этом блоге я расскажу обо всем, что вы должны знать об архитектуре Docker. Вот моменты, которые я буду здесь обсуждать:

  1. Традиционная виртуализация против Docker
  2. Рабочий процесс Docker
  3. Докер Архитектура

Традиционная виртуализация против Docker

Что такое виртуальная машина (виртуальная машина)?

ВМ - это виртуальный сервер, имитирующий аппаратный сервер. Виртуальная машина полагается на физическое оборудование системы, чтобы имитировать ту же среду, в которой вы устанавливаете свои приложения. В зависимости от вашего варианта использования вы можете использовать системную виртуальную машину (которая запускает всю ОС как процесс, позволяя вам заменить виртуальную машину реальной машиной) или обрабатывать виртуальные машины, которые позволяют выполнять компьютерные приложения в одиночку в виртуальной машине. Окружающая среда.





Раньше мы создавали виртуальные машины, и каждая виртуальная машина имела ОС, которая занимала много места и делала ее тяжелой.

Что такое докер?

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



Контейнеры не зависят от платформы, поэтому Docker может работать на платформах как Windows, так и Linux. Фактически, Docker также можно запустить на виртуальной машине, если в этом возникнет необходимость. Основная цель Docker заключается в том, что он позволяет запускать приложения микросервисов в распределенной архитектуре.

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

Другими словами, в то время как виртуальные машины абстрагируют весь аппаратный сервер, контейнеры абстрагируют ядро ​​операционной системы. Это совершенно другой подход к виртуализации, который приводит к гораздо более быстрым и легким экземплярам..



vm vs docker - архитектура докеров - edureka

Рабочий процесс Docker

Во-первых, давайте взглянем на Docker Engine и его компоненты, чтобы получить общее представление о том, как работает система. Docker Engine позволяет разрабатывать, собирать, доставлять и запускать приложения, используя следующие компоненты:

Программа серии Фибоначчи на Java
  1. Docker Daemon : Постоянный фоновый процесс, который управляет образами Docker, контейнерами, сетями и томами хранения. Демон Docker постоянно прослушивает запросы API Docker и обрабатывает их.

  2. Docker Engine REST API : API используется приложениями для взаимодействия с демоном Docker. Доступ к нему может получить HTTP-клиент.

  3. Docker CLI : Клиент интерфейса командной строки для взаимодействия с демоном Docker. Это значительно упрощает управление экземплярами контейнеров и является одной из основных причин, по которой разработчикам нравится использовать Docker.

Сначала клиент Docker общается с демоном Docker, который выполняет тяжелую работу по сборке, запуску, а также распространению наших контейнеров Docker. По сути, и клиент Docker, и демон могут работать в одной системе. Мы также можем подключить клиент Docker кудаленный демон Docker. Кроме того, с помощью REST API клиент и демон Docker обмениваются данными через сокеты UNIX или сетевой интерфейс.

Докер Архитектура

Архитектура Docker использует модель клиент-сервер и состоит из компонентов Docker's Client, Docker Host, сети и хранилища, а также Docker Registry / Hub. Давайте рассмотрим каждый из них более подробно.

Клиент Докера

Пользователи Docker могут взаимодействовать с Docker через клиента. Когда выполняются какие-либо команды докеров, клиент отправляет их демону dockerd, который выполняет их. Docker API используется командами Docker. Клиент Docker может взаимодействовать более чем с одним демоном.

Докер Хост

Хост Docker предоставляет полную среду для выполнения и запуска приложений. Он состоит из демона Docker, образов, контейнеров, сетей и хранилища. Как упоминалось ранее, демон отвечает за все действия, связанные с контейнером, и получает команды через интерфейс командной строки илиREST API. Он также может связываться с другими демонами для управления своими службами.

Объекты Docker

1. Изображения

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

Вы можете делиться образами контейнеров между командами внутри предприятия с помощью частного реестра контейнеров или делиться ими со всем миром с помощью общедоступного реестра, такого как Docker Hub. Образы являются основным элементом работы с Docker, поскольку они позволяют сотрудничать между разработчиками, что было невозможно раньше.

2. Контейнеры

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

Вы также можете создать новый образ на основе текущего состояния контейнера. Поскольку контейнеры намного меньше виртуальных машин, их можно развернуть за считанные секунды, что приводит к гораздо большей плотности серверов.

3. Сети

Сеть Docker - это канал, через который общаются все изолированные контейнеры. В докере в основном пять сетевых драйверов:

    1. Мост : Это сетевой драйвер по умолчанию для контейнера. Вы используете эту сеть, когда ваше приложение работает в автономных контейнерах, то есть в нескольких контейнерах, взаимодействующих с одним и тем же хостом докеров.

    2. Хост : Этот драйвер удаляет сетевую изоляцию между контейнерами докеров и хостом докеров. Вы можете использовать его, когда вам не нужна сетевая изоляция между хостом и контейнером.

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

    4. Никто : Этот драйвер отключает все сети.

    5. Macvlan : Этот драйвер назначает Mac-адрес контейнерам, чтобы они выглядели как физические устройства. Он направляет трафик между контейнерами через их MAC-адреса. Вы используете эту сеть, когда хотите, чтобы контейнеры выглядели как физическое устройство, например, при миграции установки виртуальной машины.

4. Хранение

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

    1. Объемы данных : Они предоставляют возможность создавать постоянное хранилище с возможностью переименовывать тома, перечислять тома, а также перечислять контейнер, связанный с томом. Тома данных размещаются в файловой системе хоста, за пределами механизма копирования при записи контейнеров и довольно эффективны.

    2. Объем контейнера : Это альтернативный подход, при котором в выделенном контейнере размещается том, и этот том монтируется в другие контейнеры. В этом случае контейнер тома не зависит от контейнера приложения, поэтому вы можете использовать его в нескольких контейнерах.

    3. Каталог Mounts : Другой вариант - смонтировать локальный каталог хоста в контейнер. В ранее упомянутых случаях тома должны находиться в папке томов Docker, тогда как когда дело доходит до монтирования каталогов, любой каталог на хост-машине может использоваться в качестве источника для тома.

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

Реестр Докера

Реестры Docker - это службы, которые предоставляют места, откуда вы можете хранить и загружать образы. Другими словами, реестр Docker содержит репозитории Docker, в которых размещены один или несколько образов Docker. Публичные реестры включают два компонента, а именно Docker Hub и Docker Cloud. Вы также можете использовать частные реестры. К наиболее распространенным командам при работе с реестрами относятся: docker push, docker pull, docker run.

Теперь, когда вы разобрались с архитектурой Docker, ознакомьтесь с этим от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс Edureka DevOps Certification Training помогает учащимся понять, что такое DevOps, и получить опыт работы с различными процессами и инструментами DevOps, такими как Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack и GIT для автоматизации нескольких этапов в SDLC.

Есть вопрос к нам? Пожалуйста, укажите это в комментариях к этой «Архитектуре Docker», и мы свяжемся с вами.