Много работал с OpenVZ, всё очень устраивало, включая производительность. Не устраивала главным образом необходимость патчинга ядра Linux, поскольку это сильно ограничивало возможности работы с капризным железом или даже просто какими-то современными ядрёными технологиями. То есть ну не слишком здорово то, что с OpenVZ можно работать только на ограниченном множестве версий Linux'ячих ядер.
Но в целом, повторюсь, OpenVZ оставил самое положительное впечатление, позволяя и бэкапы делать просто и безболезненно, и миграции между физическими машинами на случай отказа оборудования, и многое-многое другое. Плюс конечно тот факт, что не менее замечательный Proxmox поддерживает OpenVZ из коробки - не может не радовать.
Теперь Docker.
Вроде бы те же контейнеры, по сути являющиеся развитием jail/chroot, как и OpenVZ, как и LXC.
Почему сразу к этим контейнерам привязали «сбоку» основное их назначение - поставка ПО со всеми зависимостями а-ля «квази-статическая сборка». То есть вроде как Docker позволяет успешно бороться с проблемой, которую сами же Linux'оиды и создали: катастрофическим хаосом, бардаком и зоопарком из библиотек, валяющихся во всяких там /usr/lib'ах
А ещё у Docker есть забавная штука commit - пока я посто не врубаюсь, в чём соль и как оно работает, а вывод команды mount внутри контейнера начисто взрывает мозг.
Ну ОК. А с точки зрения, гм, виртуализации в контексте «создания изолированных программных сред» (клинически ненавижу слово «облако») что конкретно нового, интересного даёт нам Docker по сравнению со старым-добрым OpenVZ?
Пока я вижу одно определённое преимущество: образы Docker меньше образов OpenVZ.
А ещё???