February 9, 2016

Дизрапт недели: Докер

Дизрапт этой недели — Docker (читается "Докер") — открытая платформа для разработки и развертывания приложений для микросервисных архитектур. В отличие от технологий виртуализации, для изоляции приложений Докер использует возможности ядра Линукс для запуска приложений на одной операционной системе, но в изолированной среде — контейнере.

Сравнение технологий виртуализации и Докера показано на рисунке:

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

Если типичная технология виртуализации — это идеальный компьютер. То Докер — это идеальная операционная система.

Контейнеры Докера запускаются из образов. Существует реестр образов — Докер хаб. Образ представлен специальным скриптовым языком, которым описываются действия, необходимые для настройки того или иного приложения: выбор базового образа, установка программ, компиляция, копирование файлов, запуск скриптов и программ и т. п. В реестре образов уже есть все популярные программы.

Например, вот скрипт (Докерфайл), описывающий образ веб-сервера Nginx:

Что нужно сделать, чтобы по этому образу запустить контейнер? Достаточно написать одну единственную команду в консоли:

docker run nginx

После скачивания образа на локальный компьютер, будет запущен контейнер с этим приложением. Всего лишь одна команда в командной строке и у вас запущен веб-сервер. Да теперь сисадмином может быть даже школьник или ваша бабушка!

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

Уже звучит потрясающе, а ведь мы с вами еще не обсудили композицию контейнеров и управление кластером из Докер-контейнеров.

Я строго рекомендую программистам и сисадминам бросить все и бежать изучать Докер.


Предыдущие дизрапты недели:

Swagger