Архитектура Docker и ее компоненты для начинающих

Давайте познакомимся с архитектурой Docker и ее основными компонентами.


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

Понимание Docker для начинающих – технология контейнеров

Я полагаю, вы понимаете важность Docker в DevOps. Теперь за этим фантастическим инструментом должна стоять удивительная, продуманная архитектура. Разве это не?

Но прежде чем говорить об этом, позвольте мне продемонстрировать предыдущую и текущую систему виртуализации..

Традиционная и виртуализация нового поколения

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

Теперь в случае с Docker-контейнером у вас есть одна ОС, а ресурсы распределяются между контейнерами. Следовательно, он легкий и загружается за считанные секунды.

Традиционный против нового поколения

Docker Architecture

Ниже приведена простая схема архитектуры Docker..

Docker Architecture

Позвольте мне объяснить вам компоненты архитектуры докера.

Docker Engine

Это основная часть всей системы Docker. Docker Engine – это приложение, которое следует клиент-серверная архитектура. Он установлен на хост-машине. В Docker Engine есть три компонента:

  • сервер: Это демон докер называется dockerd. Он может создавать и управлять образами докеров. Контейнеры, сети и т. Д..
  • API отдыха: Используется для указания демону Docker, что делать.
  • Интерфейс командной строки (CLI): Это клиент, который используется для ввода команд Docker.

Docker Client

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

Docker Registries

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

Когда вы выполняете команды docker pull или docker run, требуемый образ докера извлекается из настроенного реестра. Когда вы выполняете команду docker push, образ докера сохраняется в настроенном реестре.

Докер Объекты

Когда вы работаете с Docker, вы используете изображения, контейнеры, тома, сети; все это объекты Docker.

Картинки

Изображения Docker – это шаблоны только для чтения с инструкциями по созданию контейнера Docker. Образ Docker можно извлечь из концентратора Docker и использовать как есть, либо вы можете добавить дополнительные инструкции к базовому образу и создать новый и модифицированный образ Docker. Вы можете создавать свои собственные изображения докеров, также используя файл Docker. Создайте dockerfile со всеми инструкциями, чтобы создать контейнер и запустить его; это создаст ваш собственный образ докера.

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

Контейнеры

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

Ниже приведен пример команды для запуска Docker-контейнера Ubuntu:

Docker запускает -i -t Ubuntu / bin / bash

тома

Постоянные данные, генерируемые Docker и используемые контейнерами Docker, хранятся в томах. Они полностью управляются Docker через CLI Docker или API Docker. Тома работают на контейнерах Windows и Linux. Вместо того чтобы сохранять данные в доступном для записи слое контейнера, всегда полезно использовать для него тома. Содержимое тома существует вне жизненного цикла контейнера, поэтому использование тома не увеличивает размер контейнера..

Вы можете использовать флаг -v или -mount, чтобы запустить контейнер с томом. В этом примере команды вы используете том geekvolume с контейнером geekflare.

docker run -d –name geekflare -v geekvolume: / app nginx: последний

сети

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

  1. Мост: Это сетевой драйвер по умолчанию для контейнера. Вы используете эту сеть, когда ваше приложение работает в автономных контейнерах, то есть несколько контейнеров взаимодействуют с одним и тем же хостом докера..
  2. хозяинЭтот драйвер удаляет сетевую изоляцию между док-контейнерами и док-хостом. Он используется, когда вам не нужна сетевая изоляция между хостом и контейнером..
  3. оверлей: Эта сеть позволяет службам роя общаться друг с другом. Он используется, когда контейнеры работают на разных хостах Docker или когда службы роя сформированы из нескольких приложений.
  4. Никто: Этот драйвер отключает все сети.
  5. macvlanЭтот драйвер назначает MAC-адрес контейнерам, чтобы они выглядели как физические устройства. Трафик направляется между контейнерами через их mac-адреса. Эта сеть используется, когда вы хотите, чтобы контейнеры выглядели как физическое устройство, например, при переносе настройки виртуальной машины.

Вывод

Я надеюсь, что это даст вам представление об архитектуре Docker и ее основных компонентах. Перейдите по Docker, чтобы узнать больше, и если вы хотите получить практическое обучение, то посмотрите это Курс Docker Mastery.

TAGS:

  • докер

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map