8 (800) 234-44-44

Docker: из чего состоит и как работает платформа

11 июня 2021 г.

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

Как устроен Docker

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

Docker: из чего состоит и как работает платформа
  • Docker host
  • Устройство, на базе которого работает платформа и запущенные контейнеры. В роли хоста может выступать обычный ПК или ноутбук, физический сервер или ВМ.

  • Docker daemon
  • Программа, работающая в фоновом режиме, которая находится в постоянном ожидании команды. Именно к этому компоненту направляются все запросы по управлению контейнерами. Демон «слушает» поступающие команды и выполняет запрашиваемые операции.

  • Docker client
  • Компонент, обеспечивающий взаимодействие между пользователем докера и демоном. Можно использовать обычный GUI, консоль или API.

  • Docker image
  • Образ, используемый для развертывания контейнера. Фактически представляет собой фиксированный набор файлов, который можно использовать для запуска контейнера на новом хосте. Проще говоря, докер-образ похож на CD с программой: чтобы ее установить, достаточно просто вставить диск в компьютер.

  • Docker container
  • Запущенное на конкретном хосте приложение. Если использовать сравнение из предыдущего пункта, это установленная и включенная на компьютере программа.

  • Docker registry
  • Все Docker image (образы) хранятся в специальных репозиториях. Они могут быть как публичными, так и локальными — доступ к которым имеет конкретная компания-разработчик или проектная команда.

  • Dockerfile
  • Dockerfile — это инструкция по сборке образа.

Почему разработчики переходят на контейнеры и Docker

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

Запускайте контейнерные приложения
в облаке и с легкостью управляйте ими
с помощью Containerum Managed Kubernetes Service

Узнать подбробнее

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

Упрощение настройки окружения и решение проблем зависимостей

В Docker image уже содержится все, что требуется для запуска приложения. Любой образ (image) состоит из нескольких «слоев», которые в совокупности создают необходимую среду. Например, вы создаете цифровой продукт и используете для его разработки Python. Для его запуска на сервере требуется определенное окружение — среда выполнения Python. C Docker нам не придется каждый раз ее устанавливать, достаточно поместить в Docker image образ Python.

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

Docker-образ

Все слои докер-образа неизменяемые. Чтобы из образа получить контейнер, достаточно добавить сверху еще один слой — для записи.

Group_9482-3.png

Автоматизация развертывания приложений

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

Контейнеры и Docker вписываются в микросервисную архитектуру

На смену монолитным приложениям приходят микросервисы. Как можно догадаться из названия, они состоят из нескольких работающих вместе компонентов. В отличие от монолитов, микросервисы слабо связаны друг с другом. Такой подход позволяет сократить время разработки, быстрее выводить цифровой продукт на рынок и гибко дорабатывать его функционал. Контейнеры и Docker логично «ложатся» в эту концепцию и позволяют разработчикам удобно реализовывать микросервисные приложения.

Высокий уровень безопасности приложений

Контейнер полностью изолирован от используемой устройством операционной системы. Приложение работает сугубо внутри своего контейнера без доступа к ОС. Даже если внутри произойдет какой-то сбой или ошибка, это не повлияет на среду за пределами контейнера.

Docker в облаке

Для запуска докер-контейнеров подходит и облачная инфраструктура. Разработчики могут использовать для этого обычный IaaS или присмотреться к готовым инструментам.

Например, Containerum Managed Kubernetes Service обеспечивает быстрый запуск и гибкое управление контейнерными приложениями в эластичном облаке #CloudMTS. Заявку на тестирование можно оставить на странице сервиса.

Поделиться

Другие статьи

/ Решим ваши задачи