January 16, 2023

Docker. Начало

Что такое Docker ?

Docker - технология, которая позволяет создавать контейнеры (песочницы) для упрощения разработки и запуска приложений на хостовых системах, например на Linux’ах. Docker в некоторой степени напоминает работу систем виртуализации (гипервизоры).

Контейнеры используют ядро текущей операционной системы и делят его между собой. В то время как виртуальные машины с помощью гипервизора используют аппаратные ресурсы. Образ/Image докера это read-only объект, который, по сути, хранит в себе шаблон для построения контейнера. Контейнер — это среда в которой выполняется код. Образы хранятся в репозиториях).

Основные компоненты докера:

  • Образ (image) - образ диска, который будет запускаться в контейнере.
  • Контейнер (container) - виртуальная машина, в которой запущен образ.
  • Репозиторий образов (image repository) - удалённое или локальное хранилище для образов.

Для чего он нужен

Начать необходимо с проблемы.

Давайте представим, что нам необходимо разработать приложение. Но мы не знаем, ни где это приложение будет запускаться, ни кто им будет пользоваться. Другими словами - мы решаем проблему кроссплатформенности. Так как существует огромное, постоянно растущее, множество операционных систем и платформ, мы должны предвидеть все варианты. Альтернативное решение - можно скомпилировать приложение под наиболее популярные платформы. Но это очень объемная и вовсе не тривиальная задача. Более адекватное решение - это разрабатывать под одну систему, систему которую мы можем виртуализировать. До появления docker многие так и решали проблему, но такие приложения получались достаточно громоздкими и ресурсоемкими.

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

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