The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск инструментария управления контейнерами LXC и LXD 4.0, opennews (??), 05-Апр-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


14. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +8 +/
Сообщение от microcoder (ok), 06-Апр-20, 07:11 
LXD запускает контейнер как виртуальную машину развернутую из образа и сохраняет измененное состояние контейнера между запусками (стартами контейнера), тогда как докер разворачивает контейнер налету из образа, а при остановке его уничтожает, т.е. не хранит его состояние между запусками. Все данные нужно выносить биндингами на хост или куда нибудь еще за пределы контейнера если нужно что-то сохранить, например логи сервисов или файлы БД MySQL который крутится в контейнере. Возможно докер можно настроить как LXD, но не интересовался такими подробностями. Соответственно, для файлов которые растут в контейнере, в том числе для файлов баз данных можно применить квоты на объёмы дискового пространства на уровне контейнера или дискового устройства контейнера (можно создать для /home одно устройство, для /var другое и т.д.) который располагается в томе BTRFS или другой ФС которая предоставляется на выбор при создании хранилища для контейнера. В докере придётся что-то мутить с этим, я не знаю как просто также сделать как в LXD.

LXD эксплуатирует QEMU, что позволят управлять в одном флаконе как контейнерами, так и полноценными виртуальными машинами. Можно хоть Windows 10 развернуть как виртуальную машину и управлять этой машиной унифицированными инструментами (клиетом LXD).

LXD является сервисом REST API, поэтому есть возможность создавать свои собственные запросы для управления контейнерами сторонними клиентами, например, через curl или создать свой web-клиент или использовать готовый.

В LXD нет никакого dockerfile, не нужно изучать и запоминать лишние слои абстракций для запуска контейнера, так как LXD хранит состояние контейнера при перезапуске. Например, для открытия TCP портов в контейнере нужно это явно прописать в докерфайле изучив тонкости этой премудрости, тогда как в LXD это делается штатными инструментами дистрибутива из которого развернут этот контейнер.

Docker можно запустить в контейнере LXD :)

Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

17. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +4 +/
Сообщение от microcoder (ok), 06-Апр-20, 08:23 
В дополнении, LXD может запускать контейнеры в непривелегированном режиме, это когда внутренний пользователь, например root имеет UID=0, но для хоста на котором крутится этот контейнер внутренний root будет равным UID + SubUID = 1000000, и таким образом, если root сможет "выйти" из контейнера, то на хосте он не будет иметь привелегии root.

Есть ли такое в Docker?

Ответить | Правка | Наверх | Cообщить модератору

19. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +2 +/
Сообщение от нах. (?), 06-Апр-20, 08:58 
> В дополнении, LXD может запускать контейнеры в непривелегированном режиме

сколько раз уже этот "непривелегированный режим" сам по себе вел к local root? ;-)
Потому что на самом деле он очень даже привиллегированный - это юникс, детка, хотя бы еще отчасти, не рут не может делать массу вещей - поэтому вся размазня с uid mapping призвана замазать тот факт, что на деле у тебя при этом появляется сто рутов, и на каждой их операции система вынуждена пристально вглядываться "этот рут - тут рут, или надо его обломать?" - разумеется, подобная схема лажала и будет лажать, где-нибудь да ошибаясь в проверках.

> Есть ли такое в Docker?

к счастью, нет. Можно запускать контейнер вообще от обычного пользователя, просто не оставляя внутри средств поднятия полномочий, и дополнительно некоторые capabilities выключены из коробки даже для контейнеров, работающих от рута. Именно так оно и было задумано - докер писали как изоляцию одной задачи, насмешка над bsd jail, а не эмулятора в эмуляторе в эмуляторе.
Нет рута - нет проблемы root escape. К сожалению, макаки так не умеют, 90% мусора с докерхаба не от рута не работают.

Ответить | Правка | Наверх | Cообщить модератору

20. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от microcoder (ok), 06-Апр-20, 09:10 
> сколько раз уже этот "непривелегированный режим" сам по себе вел к local root?
> это юникс, детка

Это важное замечание. Ничего совершенного нет, в том числе и сам kernel Linux не избавлен от дыр :) Баги приложений никто не отменял, но по дизайну - local root не допустим в "непривелегированном" режиме.

> к счастью, нет.

Ок

Ответить | Правка | Наверх | Cообщить модератору

95. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от rex (??), 26-Янв-21, 12:34 
в докере такое (userns) есть
Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от нах. (?), 06-Апр-20, 09:11 
> тогда как докер разворачивает контейнер налету из образа, а при остановке его уничтожает, т.е.
> не хранит его состояние между запусками

тут тебя тоже обманули - контейнер может быть персистентным, и сохраняться при остановке.
Небольшая проблема в том, что если, опять, макака завела внутри целиком эмулятор операционной системы вместо одной задачи, причем задача ДОЛЖНА уметь корректно завершать работу по сигналу извне, docker stop выглядит не как shutdown, а как обрубание питания на ходу.
Собственно, настоящий системный shutdown точно так же выглядит, это init снабжен кучей хитрой механики, плавно останавливающей демонов, в правильном порядке и дожидаясь завершения их работы.
Но внутри докера нет такого init ;-) и, главное, места под него не предусмотрено. Каждый макак чуть поумнее типового вынужден сам себе изобретать - причем докер ему тут не помогает, а мешает. Например, в докерфайле нельзя задать таймаут шатдауна, отличающийся от дефолта. И если у тебя там что-то сложное, что просто так не выключить - остается только писать жалобные просьбы в документации - "останавливайте, пожалуйста docker exec stop, или хотя бы docker -t 20000 stop, иначе я за базу не ручаюсь".

А система с нескучным restapi у нас называется k8s + openshift

> Например, для открытия TCP портов в контейнере нужно это явно прописать в докерфайле

не, не нужно. Так было задумано, когда-то давно, когда хотели чтобы докерфайл был единственным и законченным хранилищем всей метаинфы, что именно может понадобиться этой задаче.
Это все сломали и выбросили еще на ранних этапах, вместе с persistent volumes и volume-from, точнее, объявили немодно-deprecated, и понаписали сверху еще две разных обертки, ни одну из которых тоже не доделали - некогда, смузи киснет, макака, задрав обос...ный хвост уже убежала в другой прожект.

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

22. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от microcoder (ok), 06-Апр-20, 09:22 
Спасибо, что пояснили некоторые моменты, я за докер брался несколько лет назад, не пошло - выкинул его и взял LXD :)

> макак

Кто это такой, что за зверёк? :)

Ответить | Правка | Наверх | Cообщить модератору

24. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  –1 +/
Сообщение от Аноним (24), 06-Апр-20, 09:29 
> > макак
> Кто это такой, что за зверёк? :)

нах настолько зазвездился что начал говорить о себе в третьем лице

Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +2 +/
Сообщение от нах. (?), 06-Апр-20, 09:59 
раньше у нас их в сухумском обезьянопитомнике разводили, опыты по заражению чумой ставить - а потом как-то стало негуманно считаться, и их всех произвели в "разработчики". Теперь вот - чума, и вдобавок докер.

Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

27. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от microcoder (ok), 06-Апр-20, 10:04 
Какие страсти творятся в Сухум )) Был я у вас в 2016 - чудесный город, мне понравился, даже гопники налетевшие толпой понравились ))
Ответить | Правка | Наверх | Cообщить модератору

35. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от нах. (?), 06-Апр-20, 11:53 
в 16м вроде уже не было обезьян в питомнике. А доскер с системдой активно развились. Совпадение? Не думаю!

Ответить | Правка | Наверх | Cообщить модератору

28. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от YetAnotherOnanym (ok), 06-Апр-20, 10:36 
> Но внутри докера нет такого init ;-) и, главное, места под него
> не предусмотрено.

А чем тебя tini не устраивает?

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

36. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от нах. (?), 06-Апр-20, 11:54 
Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от docker stop. Никакой возможности задержать окончательный sigkill если это руками не предусмотрительно попросил набиравший
Ответить | Правка | Наверх | Cообщить модератору

42. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от YetAnotherOnanym (ok), 06-Апр-20, 13:01 
> Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от
> docker stop. Никакой возможности задержать окончательный sigkill если это руками не
> предусмотрительно попросил набиравший

Нууу, это обходимая проблема.

Ответить | Правка | Наверх | Cообщить модератору

69. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от нах. (?), 06-Апр-20, 20:24 
нет. Это вот в доскере не решается вообще никак в принципе. Баг дизайна.
Ну или сознательный tradeoff (типа и нехрен всякие postgresы запускать таким образом, это ни разу не stateless ограниченное приложение, для которых, типа, изобретали докер), только я не верю что ляпатели на игогошечке хоть иногда бывали в сознании.

Судя по остальным оставшимся от них кучкам.

Ответить | Правка | Наверх | Cообщить модератору

37. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от нах. (?), 06-Апр-20, 11:55 
Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от docker stop. Никакой возможности задержать окончательный sigkill если это руками не предусмотрительно попросил набиравший stop - не завезли.

Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

48. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от pin (??), 06-Апр-20, 13:37 
> LXD
> Все данные нужно выносить биндингами на хост или куда нибудь еще за пределы контейнера если нужно что-то сохранить

А ты правильно понимаешь lxd/lxc?

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

58. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от microcoder (ok), 06-Апр-20, 16:18 
Цитата взята из того места где говорил о докере, однако в LXC тоже можно выносить данные за пределы стораджа контейнера, а внтури монтировать как дисковое устройство.
Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск инструментария управления контейнерами LXC и LXD 4.0"  +/
Сообщение от pin (??), 06-Апр-20, 17:44 
> Цитата взята из того места где говорил о докере,

Видимо я не распарсил. Ок.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру