Большая экскурсия в мир Docker

Большая экскурсия в мир DockerВсем привет! За клавиатурой Павел Злой, и сегодня мы с вами окунёмся в мир Docker — этой загадочной штуки, которая звучит как название блюда из суши, но на самом деле помогает запускать приложения быстрее, чем вы успеете сказать «контейнеризация». Если вы думали, что Docker — это какой-то новый танец или способ завязывать шнурки, то расслабьтесь: всё гораздо веселее и полезнее.

Итак, представьте себе 2010 год.

Пока кто-то пытался понять, зачем нужны смартфоны с сенсорными экранами (а некоторые даже до сих пор не поняли), троица гениев — Камель Фунади, Соломон Хайкс и Себастьян Паль — решила сделать так, чтобы программы запускались в своих маленьких коробочках — контейнерах. Чтобы не путать их с теми пластиковыми контейнерами для еды, которые вы забываете в холодильнике на пару месяцев. В 2011 году они основали компанию Docker Inc., и началась революция.

Вот тут можно вспомнить старый анекдот: «Программисту дали задачу: упаковать программу так, чтобы она работала везде.

Он сделал контейнер. Коллеги спросили: «А где инструкция?» Он ответил: «В докерфайле!»» Да-да, именно этот магический документ под названием Dockerfile позволяет собрать контейнеры так же легко, как бабушка собирает пирог из остатков продуктов в холодильнике.

Docker — это не виртуальная машина! Нет-нет-нет.

Если виртуальная машина — это как снять квартиру с мебелью и платить за всё отдельно (иногда даже за воздух), то Docker — это как жить в одном доме с друзьями и делить ресурсы по-честному. Контейнеры используют ядро Linux напрямую, что даёт им преимущество в скорости и эффективности. Представьте себе гонку между черепахой (виртуальной машиной) и зайцем (Docker-контейнером). Заяц не просто бежит быстрее — он ещё и умеет делать селфи по дороге!

Кстати о Linux: родная среда для Docker именно эта операционная система.

Почему? Потому что ядро Linux умеет создавать эти самые контейнеры с помощью особых фишек вроде cgroups и namespaces.

Это примерно как если бы у вас был волшебный шкафчик с отделениями для каждой вещицы — никаких лишних заморочек! А вот пользователи Windows и MacOS нередко сталкиваются с тем, что им приходится запускать виртуальные машины ради запуска Linux-приложений внутри Docker’а.

Ну знаете, как если бы вы хотели приготовить борщ на электрической плите в пустыне — нужен небольшой костёр (виртуалка), чтобы всё заработало.

Многие путают Docker с системой виртуализации из-за этого костыльного решения на Windows и MacOS. Но если копнуть глубже, то видно: Docker работает ближе к железу и гораздо эффективнее традиционных виртуальных машин. Есть даже исследование от IBM под названием «An Updated Performance Comparison of Virtual Machines and Linux Containers».

Там ребята сравнивали производительность приложений в разных средах и пришли к выводу: Docker почти всегда выигрывает по скорости.

А теперь небольшой весёлый рассказ из жизни одного моего знакомого девопса Ивана. Иван решил показать своему начальнику преимущества Docker’а на практике и запустил пять контейнеров одновременно на своём ноутбуке. Начальник посмотрел на экран и сказал: «Так ты что хочешь сказать? Что вместо пяти компьютеров мне теперь нужен только один?» Иван улыбнулся и ответил: «Нет-нет!

Просто теперь у нас пятеро сотрудников работают одновременно за одним компьютером!» Начальник задумался… а потом попросил объяснить это простыми словами для бухгалтерии.

This entry was posted in Администрирование систем. Bookmark the permalink.