Дизрапт цього тижня — Docker (читається «Докер») — відкрита платформа для розробки та розгортання застосунків для мікросервісних архітектур. На відміну від технологій віртуалізації, для ізоляції застосунків Docker використовує можливості ядра Linux для запуску застосунків на одній операційній системі, але в ізольованому середовищі — контейнері.
Порівняння технологій віртуалізації та Docker показано на рисунку:

Для запуску нового застосунку немає потреби запускати гостьову операційну систему. Це суттєво скорочує час запуску й зупинення контейнера, економить оперативну памʼять і процесорний час. Запуск і зупинення контейнерів найчастіше відбувається за лічені мілісекунди.
Якщо типова технологія віртуалізації — це ідеальний компʼютер. То Docker — це ідеальна операційна система.
Контейнери Docker запускаються з образів. Існує реєстр образів — Docker Hub. Образ подано спеціальною скриптовою мовою, якою описуються дії, необхідні для налаштування того чи іншого застосунку: вибір базового образу, встановлення програм, компіляція, копіювання файлів, запуск скриптів і програм тощо. У реєстрі образів уже є всі популярні програми.
Наприклад, ось скрипт (Dockerfile), що описує образ вебсервера Nginx:

Що потрібно зробити, щоб за цим образом запустити контейнер? Достатньо написати одну-єдину команду в консолі:
docker run nginx
Після завантаження образу на локальний компʼютер буде запущено контейнер із цим застосунком. Усього лише одна команда в командному рядку — і у вас запущено вебсервер. Та тепер сисадміном може бути навіть школяр або ваша бабуся!
Контейнери можна запускати, зупиняти, видаляти.
Уже звучить приголомшливо, а ми ж із вами ще не обговорили композицію контейнерів і керування кластером із Docker-контейнерів.
Я суворо рекомендую програмістам і сисадмінам кинути все й бігти вивчати Docker.
Попередні дизрапти тижня:
— Swagger