Введение в архитектуру Docker
Эта технология Docker использует ядро Linux, такое как Cgroups и пространства имен, чтобы отделить процесс и заставить его работать без каких-либо зависимостей. Эта независимая особенность делает докер успешным благодаря одновременному запуску отдельного экземпляра или приложения и лучшему использованию инфраструктуры. Инструменты Docker и контейнера предоставляют модель развертывания на основе образов, которая упрощает совместное использование приложения в нескольких средах. Инструменты, встроенные в контейнеры, делают Docker уникальным, быстрым, гибким, независимым и удобным для пользователя. В этой теме мы собираемся узнать об архитектуре Docker.
Что такое Докер?
Слово Docker включает в себя несколько вещей, таких как инструменты из проекта с открытым исходным кодом, основной сторонник проекта и инструменты, которые компания поддерживает напрямую. В области ИТ Docker - это технология контейнеризации, которая используется для создания и использования контейнеров Linux. Сообщество докеров с открытым исходным кодом работает над усовершенствованием этих технологий, чтобы получить больше преимуществ для пользователей. Предприятие, основанное на сообществе Docker, делает его более надежным, безопасным, облегчает и предоставляет расширенные возможности для предприятия. С помощью Docker легко управлять контейнерами, такими как легкие, модульные и виртуальные машины, а также использовать их для создания, развертывания, копирования и перемещения из окружения в окружение.
Docker Architecture
Docker Engine - важная часть всей системы. Docker Engine - это сервис, который обслуживает клиент-серверную инфраструктуру, установленную на гостевой машине.
Важными тремя компонентами являются
- Сервер: Сервер - это демон docker, называемый dockerd, который может управлять и создавать контейнеры Docker, образы, сети и т. Д.
- Rest API : Rest API управляет демоном docker на его процессах.
- 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 с сетевыми драйверами. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -
- Что такое Docker Swarm?
- Установить докер
- Docker Альтернативы
- Команды Docker
- Docker Swarm Architecture