Итак, Docker – это особый контейнер для всех программных приложений, в котором всё изначально технически настроено, начиная от операционной системы и заканчивая системной инфраструктурой.
Этот продукт активно используют не только разработчики веб-приложений, но и тестировщики, так как он обладает существенным набором полезных вещей, облегчающих процесс нахождения разнообразных багов в повседневной деятельности QA компании.
Данный материал содержит максимально упрощенное объяснение Docker на основе простых примеров (статья не будет пестрить монотонными и запутанными техническими терминами, и категориями).
Давайте представим, что вы приобрели себе самокат. Сравним два варианта доставки.
- Вы получили каждую деталь в разобранном состоянии. Причем самокат – крайне любопытная конструкция, в которой масса оригинальных частей. Инструкция по сборке неудобная, местами очень устаревшая. Некоторая часть деталей выглядит иначе, а некоторые сборочные шаги пропущены.
- Вам доставили самокат в собранном виде. Садись и езжай. Он уже собран до вас. Сборкой занимались опытные специалисты, которые запросто найдут необходимые детали среди всего перечня исходников, и могущие собрать все в верной последовательности.
Это первая особенность Docker – пользователю не нужно его настраивать (и это очень удобно). Docker идеально подходит для решения проблем, когда пользователь что-то не то настроил, он сокращает сумму запросов в техподдержку и существенным образом облегчает поставку ПО. Когда все до тебя настроено, не нужно переживать, что что-то будет работать не должным образом!
В чем разница между Docker и виртуальной машиной
Принципы функционирования у них очень схожи. Но не нужно думать, что Docker – это разновидность типичной виртуальной машины. Да и работает он немного на другом уровне. В чем же главные отличия Docker от виртуальной машины?
Классическая виртуальная машина – это, грубо говоря, ПК в ПК. Она имеет свое персональное железо, хоть и в виртуальной среде: свою ОС, своё ядро, свои программные компоненты.
В отличие от виртуальной машины, Docker не может создавать отдельное ядро. Не нужно устанавливать дополнительную операционную систему, выделять память и подбирать процессорную мощность. Docker работает на основе технологии, которая позволяет запускать программный код в отдельных пространствах имен. Код, который стартует таким образом, полностью отделен от работы базовой системы, но при этом подключает ОЗУ и процессор просто как очередная программа внутри системы.
Базовые преимущества Docker перед виртуальной машиной:
- Любой контейнер стартует значительно быстрее любой виртуальной машины, так как им не нужно заново перезагружать ОС;
- Потребление системных ресурсов (памяти на жестком диске, ОЗУ, занятость процессора) не возрастает само по себе, так как внутри контейнера все мощности применяются исключительно для запуска программ, а не для обслуживания ОС;
- Docker весит гораздо меньше, чем образ виртуальной машины, так как в нём находятся исключительно полезные программы и ничего лишнего.
Системная архитектура Docker
Docker обладает собственной клиент-серверной архитектурой. Есть специальный клиент, через которого пользователь посылает запросы посредством RESTful API, и Docker daemon, который отвечает за их обработку, а также дополнительно создает и помогает запустить контейнеры.
Сервер вместе с клиентом могут находиться как внутри одной локальной машины, так и на разных. С технической стороны ничего не мешает пользователям подключаться к удаленному серверу Docker посредством своего клиента. Клиент Docker выступает в форме командного интерфейса, то есть пользователю необходимо работать через консоль.
Вместо заключения
Итак, Docker – это продукт, с помощью которого можно зафиксировать любое ПО внутри замкнутой среды (так называемого контейнера). Данный инструмент широко популярен в среде тестирования программного обеспечения, так как с его помощью пользователи могут изолировать процессы, мгновенно поднимать локальные окружения и молниеносно запускать наборы автотестов на разнообразных версиях локальных машин.
Оставить комментарий