Всевозможные User-mode Linux, OpenVZ, Xen и т.д. я пропустил. Его нужно было либо на голом железе крутить или с особыми ядрами. В общем VistualBox можно кликать, экономя время и мозги.
Идея chroot стала ясна после Linux From Scratch, аж захотелось скайп там запускать. Потом пришел LXC, но его нужно было конфигурировать через текстовые файлы. Я не осилил настройку бриждей. Vagrant + VirtualBox мне абсолютно понятен, но тяжеловесен и узкоприменим. Напишешь скрипт развертывания - а к проду он не применим, только локально поиграться (( Всевозможные Chief, Ansible, Puppet, Salt, CFEngine я пропустил, поигравшись с Ansible и CFEngine только потому что оба в дистрибутиве Alpine, а последний еще не тянет Ruby/Python. Зачем настраивать коробку очередным YAML DSL, если можно ее загрузить контейнерами. Как для обывателей - вставил в розетку и работает )) Мания на контейнеры пошла с 2013: https://www.youtube.com/watch?v=wW9CAH9nSLs Из контейнерного хайпа мне нравится только что можно собирать юзерспейс "дистрибутив" с версиями всего внутри как сам захочишь. Вопросы (концептуальные, интересно почему, а не юзай продукт С потому что мне нравится): ================================================================ * Во что оборачивать контейнеры? Вроде есть: - https://github.com/moby/moby/tree/master/image/spec + https://github.com/docker/distribution/tree/master/docs/spec - https://github.com/opencontainers/image-spec и докеровский Manifest Version 2, Schema 2 - самый популярный. По идее это tar файл, только что то для его сборки долго требовался root-сервис от Docker и его все ненавидели, кто следует тру-философии. Вроде как все облачные хостеры его поддерживают. Правильно что никто не стремится поддердивать другие форматы? Или есть альтернатива и при том рабочая? ================================================================ * Стоит ли заморачиваться с LXC для развертывания локальных демо-стендов? Как писал выше я умею варить Vagrant+VirtualBox. Пару лет назад настройка бриждей была непосильна разуму. Docker + Compose - вроде функциональная альтернатива. Я еще не понимаю как там думать в терминах портов, с VirtualBox я работал в терминах IP адресов, что приближено к реальности... ================================================================ * Есть ли локальные запускалки контейнеров, альтернативные Docker? ================================================================ * Правильно ли впихивать 10 гигабайт в контейнер или это должен быть Alpine (100 mb с lighttpd) или CoreOS (500mb)? Не будет Debian без Python и без 1GB места в голом виде? ================================================================ * Микросервис - это потому что выставляется немного HTTP REST эндпоинтов, связаных функционалом? А то когда видишь "микросервисный" Java-jar файл в 100 MB в гигабайтном убунтовом контейнере - дисонанс с моим калькулятором МК-61 с 104 однобайтными ячейками памяти... ================================================================ * Зачем вообще разбираться с Puppet, Ansible, Salt, CFEngine и т.д., если все пакуется в контейнеры? Что бы менеджить оставшийся не "микросервисный" софт (базы данных, файерволы и остальное, что требует больше чем RAM+CPU)? ================================================================ * Можно ли жить без Docker? По идее Docker не нужен, нужен только формат пакета и "исполнятор". Запускать как бы и раньше умели другими технологиями... Прибавочная стоимость в оркестрации, а не голом запускании... По идее тут будет у нас https://packages.debian.org/source/sid/kubernetes Да и сам Докер не без приключений добрался в Debian https://www.collabora.com/news-and-blog/blog/2018/07/04/docker-io-debian-package-back-to-life/ -- http://defun.work/