Что такое Докер
Docker — проект с открытым исходным кодом под лицензией Apache, написанный на языке программирования Go и используемый для автоматизации развертывания приложений в контейнерах. Другими словами, это программное обеспечение позволит вам управлять контейнерами в разных операционных системах, поскольку оно работает на нескольких платформах.
Docker представляет собой набор очень функциональных инструментов, позволяющих запускать множество различных процессов в так называемом контейнерах, т.е. в изолированных средах. Docker может успешно заменить виртуальную машину и такие решения, как XEN или VMware. Удобство его использования вытекает еще и из того, что контейнер позволяет запускать приложения без всякой эмуляции аппаратной прослойки, без операционной системы.
Docker — это платформа, благодаря которой вы можете очень быстро разрабатывать и реализовывать ваши приложения на основе отдельных контейнеров - изолированных сред выполнения вашего приложения. Это инструмент, разработанный для упрощения создания, развертывания и запуска приложений с использованием контейнеров. Контейнеры позволяют упаковать приложение со всеми его частями, такими как библиотеки или другие зависимости, и развернуть их как один пакет. Вы можете сравнить docker с виртуальными машинами, работающими в Windows, например, с использованием Hyper-V. Благодаря этому вы можете запускать Windows и Linux на одном физическом устройстве.
Однако каждая виртуальная машина имеет свою собственную операционную систему. Таким образом, работа на нескольких машинах означает работу с несколькими операционными системами, что может быть большой нагрузкой для одного компьютера. Кроме того, чаще всего только что запущенную систему нужно правильно настроить и установить все нужные нам библиотеки в соответствующих версиях и конфигурациях. Что действительно интересно и полезно для нас, так это все, что работает внутри операционной системы, а не сама ОС.
Docker и контейнеры значительно упрощают весь процесс разработки. Вместо установки гипервизора и целых операционных систем мы запускаем только то, что должно работать внутри этой системы (например, NodeJS или MongoDB). Тогда единственная операционная система — это ОС, работающая на вашем хост-компьютере. И самое главное — то, что будет назначено контейнеру, принадлежит только этому контейнеру. Даже хост не может получить доступ к ресурсам, которые использует контейнер.
Все контейнеры изолированы как друг от друга, так и от вашей операционной системы. Что и как следует запускать внутри контейнера, определяется файлом Dockerfile . Здесь вы можете найти информацию о том, какие версии библиотеки должны быть установлены, как они должны быть настроены, в каком порядке они должны запускаться и т. д. Это файл конфигурации, подобно package.json, но для Docker .