Введение в Docker: что такое, архитектура, рабочий процесс

Опубликовано: 2020-04-27

Оглавление

История виртуализации

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

Если в процессе были какие-то ошибки или баги, его приходилось начинать заново — команда разработчиков исправляла баги или ошибки, а операционная группа снова начинала развертывание кода.

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

Читайте: Kubernetes против. Докер: основные отличия

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

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

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

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

Корпоративная версия (EE):

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

Издание сообщества (CE):

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

Читайте: Идеи и темы проекта полного стека

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

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

1. Докер-демон

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

2. Докер CLI

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

3. API-интерфейс Docker Engine Rest

Это облегчает взаимодействие между демоном Docker и приложениями. Для доступа к этим API обычно требуется HTTP-клиент.

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

Архитектура Docker — это архитектура, основанная на клиент-сервере. Он состоит из трех основных компонентов, которые упомянуты ниже:

  1. Докер-хост
  2. Докер-клиент
  3. Докер реестр
  4. Докер-объекты

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

Демон Docker и клиент могут работать либо в одной системе, либо разработчик может использовать удаленный демон для подключения к локальному клиенту Docker. Rest API используется для установления связи между демоном Docker и клиентом. Это можно сделать либо через сетевой интерфейс, либо через сокеты UNIX.

Давайте теперь подробно обсудим компоненты архитектуры Docker.

Читайте также: Зачем становиться разработчиком полного стека?

1. Докер-хост

Хост Docker отвечает за запуск демона Docker. Docker Daemon обрабатывает запросы API, в том числе сборку и запуск докеров. Он также управляет образами, сетями, контейнерами и другими объектами Docker. Демоны могут общаться друг с другом для управления различными службами Docker.

2. Докер-клиент

Это не что иное, как метод, который пользователи используют для взаимодействия с Docker. Клиент Docker отправляет наши запросы, такие как запуск docker и сборка Docker, демону Docker. Очень важной особенностью клиента Docker является то, что он может взаимодействовать с несколькими демонами.

3. Докер-реестр

Реестр — это серверное приложение, которое является масштабируемым и не имеет состояния. Он не только хранит образы Docker, но и позволяет разработчикам распространять их. Docker дает нам возможность создавать собственные образы, или есть общедоступные реестры, которые мы можем использовать. Среди этих реестров — Docker Cloud и Docker Hub .

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

4. Объекты докера

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

5. Докер-образы

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

6. Докер-контейнеры

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

Заключение

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

Если вам интересно узнать больше о кодировании с полным стеком, ознакомьтесь с дипломом PG upGrad & IIIT-B по разработке программного обеспечения с полным стеком, который предназначен для работающих профессионалов и предлагает более 500 часов тщательного обучения, более 9 проектов и заданий, Статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Подготовьтесь к карьере будущего

ПРОМЫШЛЕННОЕ ОБУЧЕНИЕ, ПРИЗНАННОЕ В ПРОМЫШЛЕННОСТИ.
Применить сейчас