LXC vs Docker и форматы контейнеров
Всевозможные 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/
Reply to: