Введение в архитектуру Docker

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

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

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

Docker Architecture

Docker Engine - важная часть всей системы. Docker Engine - это сервис, который обслуживает клиент-серверную инфраструктуру, установленную на гостевой машине.

Важными тремя компонентами являются

  1. Сервер: Сервер - это демон docker, называемый dockerd, который может управлять и создавать контейнеры Docker, образы, сети и т. Д.
  2. Rest API : Rest API управляет демоном docker на его процессах.
  3. CLI: интерфейс командной строки - это пользовательский интерфейс, который используется для ввода команд в докере

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

Docker Registries: Docker hub - это место хранения образов Docker публичного реестра. Он может использоваться как частный реестр Docker или общедоступный реестр Docker. Клиенты также могут создавать и выполнять свой собственный реестр

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

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

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

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

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

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

Это пример команды для выполнения контейнера Docker:

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

3. Объемы

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

используйте флаг -v или -mount, чтобы инициировать том в контейнере.

Если клиент использует объем geek с контейнером,

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

4. Сети

Сеть Docker - это коммуникационный канал для всех изолированных контейнеров.

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

Наложение: сеть предоставляет командные сервисы для взаимодействия с другими. Это применяется, только если контейнер выполняется на нескольких гостевых или групповых сервисах Docker, сгенерированных многими приложениями. Драйвер отключает все сети, называется None driver

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

Преимущества Docker

Давайте посмотрим на некоторые преимущества Docker

  • Возврат инвестиций и экономия средств: Docker может сократить расходы, обеспечив минимальные ресурсы инфраструктуры. Это позволяет инженерной системе быть экономически выгодной из-за широких приложений, работающих на простой установке
  • Стандартизация и производительность: Docker обеспечивает стандартизацию, обеспечивая непрерывную разработку, развертывание и тестирование серверов в производственной среде. Это быстро, что позволяет делать репликации и резервирование.
  • Эффективность CI: он создает образ докера и эффективно используется для всего процесса развертывания.
  • Совместимость и ремонтопригодность: он более переносим и прост в установке и отладке.
  • Простота и более быстрые конфигурации: данные могут быть созданы и уничтожены за доли секунды в доступном диапазоне за минимальное время отклика.
  • Быстрое развертывание: оно управляет развертыванием за секунды для широкого спектра среды
  • Непрерывное развертывание и тестирование: Docker обеспечивает логическую среду от разработки до производства. Контейнеры Docker настроены на внутреннее управление всеми конфигурациями и зависимостями. Таким образом, клиент может использовать один и тот же контейнер от разработки до производства без каких-либо расхождений или ручного вмешательства.

Вывод - Docker Architecture

Docker поддерживает несколько облачных платформ, таких как AWS, GCP, и позволяет экземплярам работать внутри экземпляров amazon EC2, серверов Rack space или виртуальной коробки. Он также поддерживает Microsoft Azure, открытый стек для управления начальником, марионеткой и ANSIBLE. Преимущество использования docker - безопасность. Docker проверяет, что экземпляры, работающие на контейнерах, полностью отделены и изолированы друг от друга, обеспечивая контроль над потоком трафика и управлением. Когда клиент запускает команды Docker Pull или Docker Run, нужный образ Docker извлекается из настроенного реестра. Когда клиент запускает команду Docker Push, образ Docker сохраняется в настроенном реестре.

Рекомендуемые статьи

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

  1. Что такое Docker Swarm?
  2. Установить докер
  3. Docker Альтернативы
  4. Команды Docker
  5. Docker Swarm Architecture