Docker. Начало
Что такое Docker ?
Docker - технология, которая позволяет создавать контейнеры (песочницы) для упрощения разработки и запуска приложений на хостовых системах, например на Linux’ах. Docker в некоторой степени напоминает работу систем виртуализации (гипервизоры).
Контейнеры используют ядро текущей операционной системы и делят его между собой. В то время как виртуальные машины с помощью гипервизора используют аппаратные ресурсы. Образ/Image докера это read-only объект, который, по сути, хранит в себе шаблон для построения контейнера. Контейнер — это среда в которой выполняется код. Образы хранятся в репозиториях).
- Образ (image) - образ диска, который будет запускаться в контейнере.
- Контейнер (container) - виртуальная машина, в которой запущен образ.
- Репозиторий образов (image repository) - удалённое или локальное хранилище для образов.
Для чего он нужен
Давайте представим, что нам необходимо разработать приложение. Но мы не знаем, ни где это приложение будет запускаться, ни кто им будет пользоваться. Другими словами - мы решаем проблему кроссплатформенности. Так как существует огромное, постоянно растущее, множество операционных систем и платформ, мы должны предвидеть все варианты. Альтернативное решение - можно скомпилировать приложение под наиболее популярные платформы. Но это очень объемная и вовсе не тривиальная задача. Более адекватное решение - это разрабатывать под одну систему, систему которую мы можем виртуализировать. До появления docker многие так и решали проблему, но такие приложения получались достаточно громоздкими и ресурсоемкими.
При использовании Докера, такой проблемы не возникнет в принципе. Теперь достаточно иметь установленную программу Docker, которая по одной вашей команде установит окружение, описанное в конфиге для запуска вашего приложения.
Докер - это движок, который запускает виртуальную операционную систему, имеющую чрезвычайно маленький вес. Docker позволяет запустить ОС Linux в изолированной среде очень быстро, в течение нескольких минут.