Skip to content

Latest commit

 

History

History
47 lines (29 loc) · 6.98 KB

docker.md

File metadata and controls

47 lines (29 loc) · 6.98 KB

Контейнеризация приложения

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

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

Docker Платформа (Docker Platform) — это программный комплекс, который упаковывает приложения в контейнеры, запускает контейнеры в аппаратных средах (серверах), управляет логикой работы контейнеров, обеспечивает работу пользователя в системе.

Docker «Движок» (Docker Engine) — это клиент-серверное приложение, обеспечивающее весь цикл работы с технологией Docker.

Docker Engine может использоваться в одном из двух вариантов:

  • Docker Community Edition — это бесплатное ПО, основанное на инструментах open-source,
  • Docker Enterprise — платное программное обеспечение, предназначенное для использования производственными компаниями в больших коммерческих проектах.

Docker Клиент (Docker Client) — это основной инструмент пользователя при работе с Docker. Взаимодействие осуществляется с использованием командной строки Docker CLI (Docker Command Line Interface).

В Docker CLI пользователь вводит команды, начинающиеся с ключевого слова «docker», эти команды обрабатываются Docker Клиентом и с использованием API Docker отправляются Docker Демону (Docker Daemon).

Docker Образ (Docker Image) — это набор данных, содержащий:

  • образ базовой операционной системы (файловая система, системные настройки, драйверы устройств);
  • прикладное программное обеспечение для развертывания в базовой операционной системе с настройками;
  • библиотеки, служебные файлы.

Docker образ используется для создания Docker Контейнера (Docker Container). Различают базовые и дочерние образы:

  • Base images (базовые образы) не имеют родительского образа. Обычно это образы с операционной системой, такие как ubuntu, busybox или debian.
  • Child images (дочерние образы) построены на базовых образах и обладают дополнительной функциональностью.

Существуют официальные и пользовательские образы (любые из них могут быть базовыми и дочерними):

  • Официальные образы официально поддерживаются компанией Docker. Обычно в их названии одно слово (например, python, ubuntu).
  • Пользовательские образы создаются пользователями и построены на базовых образах. Формат имени пользовательского образа «имя пользователя»/«имя образа».

Docker Контейнер (Docker Container) — это запускаемый экземпляр Docker Образа. В контейнере запускаются приложения со всеми требуемыми настройками и зависимостями. Контейнер разделяет имеющиеся ресурсы на уровне ядра операционной системы с другими контейнерами, работает изолированно от других контейнеров в своей операционной системе (hosted OS).

Docker Демон (Docker Daemon) — это сервис, запущенный в фоновом режиме, предназначенный для управления образами, контейнерами, сетями и томами. Взаимодействие с Docker Демоном осуществляется через запросы к API Docker.

Docker Реестр, Docker хаб (Docker Hub) — это место хранения Образов Docker, облачное хранилище.

Файл Dockerfile — это текстовый файл, содержащий упорядоченный перечень команд, необходимых при создании (building) Docker образа (Docker image). Этот файл содержит описание базового образа, который будет представлять собой исходный слой образа.

Docker Том (Docker Volume) — это специальный уровень Docker контейнера, который позволяет передавать данные в Docker контейнер.

Docker Том — это наиболее предпочтительный механизм постоянного хранения данных, используемых или создаваемых приложениями. Здесь могут храниться таблицы базы данных, конфигурационные файлы, изображения, html файлы, сохраненные модели в формате pickle и т.п.

Сетевые механизмы Docker (Docker Networking) организуют связь между контейнерами Docker. Соединенные с помощью Docker Сети (Docker Network) контейнеры могут выполняться на одном и том же хосте или на разных хостах, взаимодействуя между собой как отдельные независимые сервисы.

Docker Compose — это инструмент экосистемы Docker, упрощающий работу с многоконтейнерными приложениями. Docker Compose выполняет инструкции, описанные в файле docker-compose.yml.