Что такое Docker простыми словами

Что такое Docker

Docker – это инструмент, с помощью которого можно легко создавать контейнеры на сервере и проводить различные манипуляции с ними.

Ну спасибо… одно непонятное заменил на другое. А что такое контейнер, блин?

Что такое контейнер

Контейнер – это вместилище “чего-либо”: базы данных, сайта, исполнительной среды какого-нибудь языка программирования. Другими словами, контейнер – это способ упаковать приложение для дальнейшего использования.

Простой теоретический пример контейнеризации

Допустим, Вы хотите создать сайт на WordPress. Для этого с помощью Docker вы создаете два контейнера: первый контейнер будет содержать исполнительную среду для языка программирования PHP, второй контейнер будет содержать в себе базу данных MySQL. Вот и все.

Как работает Docker

Если не вдаваться в технические дебри, можно сказать, что Docker – это некая операционная система для контейнеров. После установки на сервер Docker предоставляет доступ к простым командам, необходимым для сборки, запуска или остановки контейнеров. Например, если у Вас есть контейнер с базой данных, с помощью Docker можно к нему подключиться и выполнять SQL-команды.

Преимущества использования Docker

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

Скорость развертывания

Когда программист только начинает создавать что-то, ему необходимо настроить виртуальное окружение у себя на компьютере. Современные приложения не делаются на одном языке программирования, даже для создания сайта используется несколько технологий: PHP, JavaScript, Node.js, MySQL, Nginx, Webpack. В грамотно настроенном виртуальном окружении эти технологии связаны и взаимодействуют между собой дополняя друг друга.

Виртуальное окружение – это некая удобная среда разработки, в которой есть все необходимые программы и сервисы для разработки приложения.

Создать виртуальное окружение это полдела, ведь еще необходимо чтобы оно запускалось у других программистов без всяких костылей и велосипедов. Это муторный процесс, который занимает огромное количество времени и сил. С Docker, этот процесс упрощается в разы, ведь проще запустить два контейнера с нужными вещами одной командой, чем полтора часа ставить нужный софт по отдельности и танцевать вокруг “открытия и закрытия” портов на своем компьютере.

Микросервисы

Контейнеры приближают систему к микросервисной инфраструктуре, а это значит добавление нового функционала происходит намного проще, чем при монолитном подходе.

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

Проекты сделанные с помощью Docker очень легко связываются с онлайн системами контроля версий по типу GitHub и GitLab, что позволяет легко выпускать новые обновления функционала и выполнять “откат” обновления в случае сбоя за пару команд в терминал.

Безопасность и стабильность системы

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

Низкое потребление ресурсов

Система, в которой есть несколько контейнеров с разными технологиями (PHP, Node.js, MySQL) будет потреблять меньше ресурсов, чем если эти сервисы будут установлены мануально и запущены на одном сервере вне Docker.

Итог

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

Рассказать друзьям: