Что такое Docker?
Docker — это инструмент контейнеров, который позволяет разработчикам легко упаковать, корабль, развертывать и запускать их приложения.
Если ваше приложение требует установки Node.js, Express, Mongodb и redis, вы должны вручную установить их на вашу машину. В зависимости от ОС это может быть утомительно, и многие вещи могут пойти не так.
Однако с Docker, все эти конфигурации, услуги, зависимости устанавливаются и все, что вам нужно сделать, это запускать изображение в контейнере. Вы больше не должны напрямую устанавливать что-либо самостоятельно.
Изображение vs Контейнер
Изображение
- Файл, который содержит исходный код, конфигурации, зависимости, инструменты и т. Д. Необходимое для фактического запуска программы
- Это фактический пакет/артефакт, который можно перемещать.
Контейнер
- Виртуализированная среда, создаваемая во время выполнения, которая фактически запускает изображение.
- Контейнер фактически управляет изображением в собственной виртуальной среде.
Докер против виртуальной машины
Чтобы понять Docker, нам нужно понимать операционную систему и слои.
Слой приложений — это все, с которым вы взаимодействуете. Это будет включать в себя любые настольные приложения, IDE, Интернет и т. Д. Этот слой приложений работает сверху ядра.
Это ядро ОС обрабатывает управление устройством, управление памятью, управление ресурсами и доступ к компьютеру. Он связывается с аппаратным обеспечением, который включает RAM, CPU и т. Д.
Докер
- С докером слой приложений является виртуализированным.
- Дочсерские контейнеры бегут/начнут быстрее!
- Изображения меньше.
Виртуальная машина
- VM виртуализирует как накладное нанесение, так и ядро операционной системы.
- VM может запустить операционную систему на любом хостом. Однако с докером вы не можете.
Docker Engine
- Когда вы устанавливаете Docker, вы устанавливаете Docker Engine под капотом.
Двигатель Docker состоит из трех компонентов:
- Сервер
- Ответственность за вытягивание изображений
- Ответственный за управление изображениями и контейнерами
- API.
- Ответственный за взаимодействие с помощью Docker Server
- Выступ
- Это клиент, который отвечает за выполнение команды Docker
Архитектура Докера
- Docker использует архитектуру клиент-сервер.
- Client (CLI) Docker (CLI) переговоры с Docker Server (демон), который делает тяжелую подъем постройки, работает, распределяя ваши контейнеры.
- Когда мы говорим о демоне, это просто процесс под названием Dockerd работает на заднем плане, ожидающих любых запросов на API
- Docker Daemon (Dockerd) слушает запросы Docker API и управляет докерными объектами (изображениями, контейнерами, сетями и объемами).
- Демон также может общаться с другими демонами для управления услугами.
Обязанности Docker Server:
- Контейнерное время выполнения
- Ответственный за вытягивание изображений и управлять контейнерным жизненным циклом.
- Тома
- Отвечает за постоянные данные в контейнерах, когда контейнер останавливает работу или что-то идет плохо.
- Сеть
- Ответственный за настройку сети для контейнерного общения
- Функциональность построения докеровских изображений Отказ
Оригинал: «https://dev.to/tomislavkraljic/how-does-docker-work-141a»