The OpenNET Project / Index page

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

Выпуск инструментария управления контейнерами LXC и LXD 4.0

05.04.2020 22:22

Компания Canonical опубликовала релиз инструментария для организации работы изолированных контейнеров LXC 4.0, менеджера контейнеров LXD 4.0 и виртуальной ФС LXCFS 4.0 для симуляции в контейнерах /proc, /sys и виртуализированного представления cgroupfs для дистрибутивов без поддержи пространств имён для cgroup. Ветка 4.0 отнесена к выпускам с длительной поддержкой, обновления для которых формируются в течение 5 лет

LXC представляет собой runtime для запуска как системных контейнеров, так и контейнеров для отдельных приложений (OCI). В состав LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования. Изоляция осуществляется при помощи штатных механизмов ядра Linux. Для изоляции процессов, сетевого стека ipc, uts, идентификаторов пользователей и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. Для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities. Код LXC написан на языке Си и распространяется под лицензией GPLv2.

LXD представляет собой надстройку над LXC, CRIU и QEMU, применяемую для централизованного управления контейнерами и виртуальными машинами на одном или нескольких серверах. Если LXC является низкоуровневым инструментарием для манипуляции на уровне отдельных контейнеров, то LXD реализован в виде фонового процесса, принимающего запросы по сети через REST API и позволяющего создавать масштабируемые конфигурации, развёрнутые на кластере из нескольких серверов. Поддерживаются различные бэкенды хранилищ (дерево директорий, ZFS, Btrfs, LVM), снапшоты со срезом состояния, live-миграция работающих контейнеров с одной машины на другую и средства для организации хранилища образов. Код LXD написан на языке Go и распространяется под лицензией Apache 2.0.

Ключевые улучшения в LXC 4.0:

  • Полностью переписан драйвер для работы с cgroup. Добавлена поддержка унифицированной иерархии cgroup (cgroup2). Добавлена функциональность контроллера freezer, при помощи которого можно остановить работу в cgroup и временно высвободить некоторые ресурсы (CPU, ввод/вывод и потенциально даже память) для выполнения других задач;
  • Реализована инфраструктура для перехвата системных вызовов;
  • Добавлена поддержка подсистемы ядра "pidfd", предназначенной для обработки ситуации с повторным использованием PID (pidfd связывается с конкретным процессом и не меняется, в том время как PID может быть привязан к другому процессу после завершения текущего процесса, ассоциированного с этим PID);
  • Улучшено создание и удаление сетевых устройств, а также их перемещения между пространствами имён сетевой подсистемы;
  • Реализована возможность перемещения беспроводных сетевых устройств (nl80211) в контейнеры.

Ключевые улучшения в LXD 4.0:

  • Добавлена поддержка запуска не только контейнеров, но и виртуальных машин;
  • Для сегментирования серверов LXD предложена концепция проектов, упрощающих управление группами контейнеров и виртуальных машин. Каждый проект может включать свой набор контейнеров, виртуальных машин, образов, профилей и разделов хранения. В привязке к проектам можно задавать свои ограничения и менять настройки;
  • Добавлена поддержка перехвата системных вызовов для контейнеров;
  • Реализовано создание резервных копий окружений и восстановление из них;
  • Обеспечено автоматизированное создание снапшотов окружений и разделов хранилищ с возможностью задания времени существования снапшота;
  • Добавлен API для мониторинга за состоянием сети (lxc network info);
  • Добавлена поддержка shiftfs, виртуальной ФС для сопоставления точек монтирования с пространствами имён идентификаторов пользователей (user namespace);
  • Предложены новые типы сетевых адаптеров "ipvlan" и "routed";
  • Добавлен бэкенд для использования хранилищ на базе CephFS;
  • Для кластеров реализована поддержка репликации образов и многоархитектурных конфигураций;
  • Добавлена возможность управления доступом на основе ролей (RBAC);
  • Добавлена поддержка CGroup2;
  • Добавлена возможность настройки MAC-адреса и определения адреса источника для NAT;
  • Добавлен API для управления привязками в DHCP (leases);
  • Добавлена поддержка Nftables.


  1. Главная ссылка к новости (https://ubuntu.com/blog/lxd-4-...)
  2. OpenNews: Уязвимость в runc и LXC, затрагивающая Docker и другие системы контейнерной изоляции
  3. OpenNews: Выпуск системы управления контейнерами LXC 2.1
  4. OpenNews: Уязвимость в LXC, позволяющая получить доступ к файлам вне контейнера
  5. OpenNews: Компания Canonical выпустила систему управления контейнерами LXD 2.0
  6. OpenNews: Выпуск системы управления контейнерами LXD 2.8
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/52679-lxc
Ключевые слова: lxc, lxd, container
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (91) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Kroz (??), 01:15, 06/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Чем LXC лучше docker?
     
     
  • 2.5, Аноним (5), 01:24, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    проще
     
  • 2.8, бублички (?), 03:17, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    для простого и понятного примера, попробуй запусти в одном Docker-контейнере Nginx, PHP-FPM, MySQL и Postfix. да, в одном контейнере а не в 4 разных, что будут по TCP/IP друг с другом общаться и все впятером  гадить в syslog что крутится в 5-м. в LXC это делается как в любой стандартной OS, ибо служит для изоляции (контейнер) OS, в то время как Docker для изоляции приложения
     
     
  • 3.12, Аноним (12), 05:50, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    что ты несешь, как настроишь, туда и будут "гадить", все, что может lxc, может и docker, но не наоборот
     
  • 3.18, нах. (?), 08:47, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +17 +/
    > для простого и понятного примера, попробуй запусти в одном Docker-контейнере Nginx, PHP-FPM,
    > MySQL и Postfix.

    к сожалению, примерно 2/3 хлама, поставляемого в виде докер-образов именно так и сделаны. Включая, как ни смешно, docker registry.
    Ты еще забыл добавить в эту кучку мусора самодельную наколеночную замену init (да, да - что-то ведь должно весь этот мусор последовательно запускать) и cron (ибо ниасиляторы не могут настоящий, а периодические процессы таки им иногда нужны)

    А теперь попробуй корректно такой "контейнер" остановить по docker stop. "ой, база побилась" ? Ну, вот так у обезьянок - всё. Естественно, и от докерной автоматики, перезапускающей если упало, таким образом успешно избавляются, docker daemon умеет перезапускать только entrypoint, а не всю внутреннююю мусоруку.

    Еще очень модно при старте что-нибудь скачать из интернета и покомпилять - потому что макака не смогла это запихнуть куда надо, в dockerfile.

    Сколько макакам ни долбили что докер вовсе не предназначен быть эмулятором для запуска операционной системы целиком, это средство изоляции отдельной программы - даже нарочно наделав им грабель (любимый макакой systemd просто так внутри не запускается) - ничего не помогает. Включая макак, работавших в самом докере - еще раз см регистри.

    Но, к сожалению, поляна, как обычно, загажена - ни про какое lxc макака и не слышала, и не умеет, и уметь не хочет.

    При этом как раз все, что умеет делать докер, lxc тоже умеет. Включая и не ограничиваясь частичной изоляцией - без громождения прослоек overlay одной поверх другой.

     
     
  • 4.31, бублички (?), 11:06, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    мне то ты зачем про это пишешь, да ещё в таком количестве? я применение Docker знаю, и где надо и возможно - пользуюсь им без лишних уродливых костылей, именно для изоляции приложения (к примеру RabbitMQ кластер, что деплоится автоматом со всеми необходимыми настройками из Dockerfile). где надо больше чем может Docker без костылей - пользуюсь LXC. где надо ещё больше - KVM. и всё прекрасно работает, жалоб нет, костылей избегаю
     
  • 3.23, YetAnotherOnanym (ok), 09:28, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Очень хорошо настраивал в одном контейнере Haproxy, Zotonic (т.е. Erlang VM), PostgreSQL и OpenSSH. Контейнер лепил сам из голого Alpine.
    А что, у меня должны были возникнуть какие-то проблемы?
     
     
  • 4.25, anonymous (??), 09:58, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Кроме того что ты идиот (догадайся сам почему), проблем никаких.
     
     
  • 5.29, YetAnotherOnanym (ok), 10:37, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Кроме того что ты идиот (догадайся сам почему), проблем никаких.

    То есть, кроме оскорблений, сказать нечего. Чего-то такого я и ожидал.

     
     
  • 6.32, бублички (?), 11:10, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а что тебе ещё сказать? тем-более ты сам говоришь что ожидал подобного. а вот скажи, ожидаешь не от понимания ли что всё-таки используешь Docker не по назначению?
     
     
  • 7.41, YetAnotherOnanym (ok), 12:58, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > используешь Docker не по назначению

    А я и математический анализ не по назначению использовать могу - согну проволоку в форме интеграла и достану ключи из унитаза.
    Если контейнер с 512МБ ОЗУ стОит примерно на треть дороже, чем контейнер с 256МБ, а контейнер с 1ГБ ОЗУ стОит немного более чем наполовину дороже, чем контейнер с 256МБ, то как раз таки надо быть идиотом, чтобы платить за 4 контейнера вместо одного.

     
     
  • 8.46, бублички (?), 13:31, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    тяжело тебе, ещё и кризис с коронавирусом соболезнования... текст свёрнут, показать
     
     
  • 9.52, YetAnotherOnanym (ok), 14:52, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если у тебя есть возможность тратить деньги своего работодателя, не считая их, я... текст свёрнут, показать
     
     
  • 10.79, www2 (??), 09:51, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем вам вообще Docker, если вы во главу угла ставите дешевизну хостинга Для м... текст свёрнут, показать
     
     
  • 11.80, YetAnotherOnanym (ok), 11:47, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не только дешевизну Крупные хостеры Амазон, Гугл, Диджитал Оушн за каким-то х... большой текст свёрнут, показать
     
     
  • 12.82, Александр Друзь (?), 14:32, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Представь себе внутрикорпоративный продукт собственного производства Бизнес зак... большой текст свёрнут, показать
     
     
  • 13.85, YetAnotherOnanym (ok), 17:27, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    То есть, для правильного использования Докера приложение должно было быть напи... текст свёрнут, показать
     
     
  • 14.88, Аноним (88), 18:15, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Контейнеры типа докера тут не нужно использовать вообще Контейнеры ОС типа LXC ... большой текст свёрнут, показать
     
  • 12.87, бублички (?), 17:40, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    извини, но DO - самая бомжацкая помойка из всех возможных буквально хостинг от ... текст свёрнут, показать
     
  • 5.77, Аноним (77), 06:26, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Идиота в зеркале увидишь.
     
  • 4.33, бублички (?), 11:21, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    и правда удобно? и не беда что файлы той-же базы PostgreSQL приходится держать где-то вне контейнера чтоб не исчезли при его рестарте? мигрировать с сервера на сервер такой контейнер с внешними файлами удобно? выкатывать новый для HA? а новые ключи для доступа по SSH как добавляешь? неужели руками? уже и не спрашиваю про новых пользователей кому надо дать доступ в твой контейнер. чего только не выдумают люди чтоб оправдать свою лень и нежелание узнавать что-то простое и полезное (в данном случае LXC)
     
     
  • 5.40, YetAnotherOnanym (ok), 12:49, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вольюм примонтирован Работает Не должен Вот хз, мигрировал ли мой контейнер с... большой текст свёрнут, показать
     
     
  • 6.45, бублички (?), 13:24, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    неправильный выбор технологий снизу и доверху впечатляет, полное отсутствие HA в принципе тоже. Docker там где нужен бы LXC, PostgreSQL (религия?) без всяких оснований вместо MySQL (Percona). HAProxy то для чего? SSH понятно тебе нужен, чтоб логи смотреть и процессами управлять, т.к. хостинг твой для бомжей (4 контейнера уже дорого) и видно даже лог твоего контейнера не отображает никаким образом (за дополнительную плату). надеюсь это dev или staging, за подобный production мучительно и долго убивал бы из рогатки клюквой. попадались мне такие проекты по наследству от всеразличных самоделкиных - смеялся и плакал, восхищаясь бесконечной глупости. даже поставил на столе портретик Эйнштейна
     
     
  • 7.51, YetAnotherOnanym (ok), 14:46, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Дай-ка угадаю, ты когда-то прочёл одну-единственную хаутушку и с тех пор она завладела твоими мыслями и не отпускает ни на мгновенье, и всё, что тебе попадается, ты переделываешь по тому самому, одному-единственному когда-то прочитанному рецепту.
    А что касается подхода "заплати лишнее за ненужное, а то я буду на тебя смотреть как на бомжа" - уместна для "бутика", где торгуют вьетнамским барахлом под видом эксклюзивного хот-кутюр из Парижа.
     
     
  • 8.53, бублички (?), 14:57, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    это эмоции, таблеточки принимай как доктор предписал и смотри себе цветные сны п... текст свёрнут, показать
     
     
  • 9.57, Аноним (57), 16:15, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вам с такими взглядами о единственно возможном способе использования технологий ... текст свёрнут, показать
     
     
  • 10.62, бублички (?), 18:59, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    возможно но по крайней мере я не надеваю сапоги на голову руками что растут из ... текст свёрнут, показать
     
     
  • 11.81, YetAnotherOnanym (ok), 11:55, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ещё я иногда орехи гантелей колю, когда лень тащиться на кухню за орехоколом ... текст свёрнут, показать
     
     
  • 12.83, Аноним (88), 14:43, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так-то можно и скриншоты в ексель вставлять, чтобы потом переслать по почте Не ... текст свёрнут, показать
     
     
  • 13.86, YetAnotherOnanym (ok), 17:31, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С учётом того, насколько отвратительный дефолтный просмотрщик изображений в б-же... текст свёрнут, показать
     
     
  • 14.89, Аноним (88), 18:21, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Те кто посылает скриншоты в екселе, не используют стандартный просмотрщик десято... текст свёрнут, показать
     
  • 6.84, Аноним (88), 15:43, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Подозреваю, вы плохо читали http docs zotonic com en latest developer-guide g... большой текст свёрнут, показать
     
     
  • 7.90, YetAnotherOnanym (ok), 19:11, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Читал, причём внимательно Только это у Вас доки на версию 1 0 ветка master на ... большой текст свёрнут, показать
     
     
  • 8.91, Аноним (88), 01:40, 08/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее жалость к человеку с ограниченными умственными возможностями, который ни ... большой текст свёрнут, показать
     
     
  • 9.92, YetAnotherOnanym (ok), 10:32, 08/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вооот, ещё очередной страдалец отметился Ещё с каким ... текст свёрнут, показать
     
  • 9.93, бублички (?), 22:20, 08/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    апломбом, но в остальном согласен... текст свёрнут, показать
     
  • 3.47, Аноним (47), 13:32, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В чем проблема это сделать? Берешь любой менеджер процессов и вперед. Да можешь хость systemd взять.
     
     
  • 4.67, нах. (?), 20:21, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    например в том, что ты явно никогда даже не пытался.

    > Да можешь хость systemd взять.

    можешь, только работать он - внезапно, не будет.

     
     
  • 5.74, Аноним (74), 23:55, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > например в том, что ты явно никогда даже не пытался.

    нет ты
    > только работать он - внезапно, не будет.

    будет

     
  • 3.56, Аноним (57), 16:05, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    запускаешь supervisord в качестве pid 1 и все остальные Nginx, PHP-FPM, MySQL и Postfix — через его конфиг. Нет никаких проблем.
     
     
  • 4.63, Аноним (63), 19:43, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    systemd по всем параметрам лучше
     
  • 4.68, нах. (?), 20:22, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    до момента docker stop, ага, почти нет.

     
  • 3.78, Aquarius (ok), 07:17, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А что мешает сделать так, чтобы они будучи в разных контейнерах общались не по TCP/IP, а через pipe?
     
  • 2.11, Аноним (-), 05:36, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    у lxc есть unprivileged containers для запуска контейнеров без рута (хотя в lxd их поддержку, емнип, не завезли)
     
     
  • 3.15, microcoder (ok), 07:22, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всё завезли - security.privileged
    https://linuxcontainers.org/lxd/docs/master/instances
     
  • 2.13, Аноним (13), 06:28, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    гораздо стабильнее и сделано не через жопу
     
     
  • 3.16, Аноним (5), 07:26, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    обоснуй
     
  • 2.14, microcoder (ok), 07:11, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    LXD запускает контейнер как виртуальную машину развернутую из образа и сохраняет измененное состояние контейнера между запусками (стартами контейнера), тогда как докер разворачивает контейнер налету из образа, а при остановке его уничтожает, т.е. не хранит его состояние между запусками. Все данные нужно выносить биндингами на хост или куда нибудь еще за пределы контейнера если нужно что-то сохранить, например логи сервисов или файлы БД MySQL который крутится в контейнере. Возможно докер можно настроить как LXD, но не интересовался такими подробностями. Соответственно, для файлов которые растут в контейнере, в том числе для файлов баз данных можно применить квоты на объёмы дискового пространства на уровне контейнера или дискового устройства контейнера (можно создать для /home одно устройство, для /var другое и т.д.) который располагается в томе BTRFS или другой ФС которая предоставляется на выбор при создании хранилища для контейнера. В докере придётся что-то мутить с этим, я не знаю как просто также сделать как в LXD.

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

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

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

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

     
     
  • 3.17, microcoder (ok), 08:23, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В дополнении, LXD может запускать контейнеры в непривелегированном режиме, это когда внутренний пользователь, например root имеет UID=0, но для хоста на котором крутится этот контейнер внутренний root будет равным UID + SubUID = 1000000, и таким образом, если root сможет "выйти" из контейнера, то на хосте он не будет иметь привелегии root.

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

     
     
  • 4.19, нах. (?), 08:58, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > В дополнении, LXD может запускать контейнеры в непривелегированном режиме

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

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

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

     
     
  • 5.20, microcoder (ok), 09:10, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > сколько раз уже этот "непривелегированный режим" сам по себе вел к local root?
    > это юникс, детка

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

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

    Ок

     
  • 3.21, нах. (?), 09:11, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > тогда как докер разворачивает контейнер налету из образа, а при остановке его уничтожает, т.е.
    > не хранит его состояние между запусками

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

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

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

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

     
     
  • 4.22, microcoder (ok), 09:22, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, что пояснили некоторые моменты, я за докер брался несколько лет назад, не пошло - выкинул его и взял LXD :)

    > макак

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

     
     
  • 5.24, Аноним (24), 09:29, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > > макак
    > Кто это такой, что за зверёк? :)

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

     
  • 5.26, нах. (?), 09:59, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    раньше у нас их в сухумском обезьянопитомнике разводили, опыты по заражению чумой ставить - а потом как-то стало негуманно считаться, и их всех произвели в "разработчики". Теперь вот - чума, и вдобавок докер.

     
     
  • 6.27, microcoder (ok), 10:04, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какие страсти творятся в Сухум )) Был я у вас в 2016 - чудесный город, мне понравился, даже гопники налетевшие толпой понравились ))
     
     
  • 7.35, нах. (?), 11:53, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    в 16м вроде уже не было обезьян в питомнике. А доскер с системдой активно развились. Совпадение? Не думаю!

     
  • 4.28, YetAnotherOnanym (ok), 10:36, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Но внутри докера нет такого init ;-) и, главное, места под него
    > не предусмотрено.

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

     
     
  • 5.36, нах. (?), 11:54, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от docker stop. Никакой возможности задержать окончательный sigkill если это руками не предусмотрительно попросил набиравший
     
     
  • 6.42, YetAnotherOnanym (ok), 13:01, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от
    > docker stop. Никакой возможности задержать окончательный sigkill если это руками не
    > предусмотрительно попросил набиравший

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

     
     
  • 7.69, нах. (?), 20:24, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    нет. Это вот в доскере не решается вообще никак в принципе. Баг дизайна.
    Ну или сознательный tradeoff (типа и нехрен всякие postgresы запускать таким образом, это ни разу не stateless ограниченное приложение, для которых, типа, изобретали докер), только я не верю что ляпатели на игогошечке хоть иногда бывали в сознании.

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

     
  • 5.37, нах. (?), 11:55, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от docker stop. Никакой возможности задержать окончательный sigkill если это руками не предусмотрительно попросил набиравший stop - не завезли.

     
  • 3.48, pin (??), 13:37, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > LXD
    > Все данные нужно выносить биндингами на хост или куда нибудь еще за пределы контейнера если нужно что-то сохранить

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

     
     
  • 4.58, microcoder (ok), 16:18, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Цитата взята из того места где говорил о докере, однако в LXC тоже можно выносить данные за пределы стораджа контейнера, а внтури монтировать как дисковое устройство.
     
     
  • 5.61, pin (??), 17:44, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Цитата взята из того места где говорил о докере,

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

     
  • 2.38, sage (??), 12:40, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Docker — контейнер приложений (application container), LXC/LXD/OpenVZ — системные контейнеры (system container). Сделаны по-разному и для разного.

    Пересекаются технологически, но не идеологически. Docker не подходит и не предназначен для контейнеров с большим количеством демонов, как и не подходит LXC/Jail для запуска одной единственной программы, предварительно установив туда всю ОС.

    Мне гораздо чаще приходится запускать полноценные контейнеры, и я выбираю для этого LXD (и иногда systemd-nspawn/machined). Возможно, некоторые не знают о разнице подходов, и пытаются адаптировать неподходящий, но известный им инструмент (docker) под их задачу, что можно видеть по куче статей в интернете, где решают проблему init 1 в docker.

    Systemd не работает в Docker.

     
     
  • 3.39, sage (??), 12:41, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Также см. https://www.linux.org.ru/forum/general/15607470
     
  • 3.49, Аноним (47), 13:56, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Systemd не работает в Docker.

    Это же из-за проблем с правами просходит. В LXC должно быть также? Под капотом же одно и то же.

     
  • 3.55, GentooBoy (ok), 15:17, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    LXD это не контейнеры это тулза для управления lxc и kvm теперь.
     
  • 3.64, Аноним (63), 19:47, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > systemd  не работает в docker

    все прекрасно работает

     
  • 2.43, Аноним (43), 13:12, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    network.type=phys
     
  • 2.60, trunk (?), 17:27, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В частности тем, что есть в 32-разрядных дистрибутивах. Можео на старый сервер поставить.
     

  • 1.1, Аноним (1), 23:04, 05/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –14 +/
    Чем оно лучше flatpak?
     
     
  • 2.2, Аноним (2), 23:15, 05/04/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Примерно тем же, чем лучше трамвайной ручки.

    Это вообще-то совсем разные вещи.

     
     
  • 3.44, Аноним (43), 13:13, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что такое трамвайная ручка?
     
     
  • 4.75, Аноним (75), 02:22, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://st3.depositphotos.com/1019087/15741/i/1600/depositphotos_157412216-sto
     
     
  • 5.76, _ (??), 03:35, 07/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вах! В отличии от доскера - офигенная, винтажная штучка! :)
     
  • 2.3, Аноним (3), 23:30, 05/04/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Стоит сравнивать с openvz. Есть мнение, что хуже openvz быть ничего не может, в связи с чем сабж -- технический победитель.
     
     
  • 3.6, Aliech (ok), 01:31, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Оценивать по ущербности low-end хостеров саму технологию изоляции... Это... ну это Опеннет, всё норм. Продолжайте...
     
     
  • 4.7, Аноним (3), 01:52, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Почему-то решения на основе lxc при всей ущербности у тех же самых помойных хостеров вполне норм. Можно сделать определённые выводы. Или это мне так "везло"?
     
     
  • 5.30, Aliech (ok), 11:06, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пока нет данных об оверсейле мощностей тех нод, где крутился OpenVZ, - никаких выводов делать нельзя.

    Тем более что OpenVZ появился раньше, клиенты на нём тоже, нода стоит не обслуженная уже лет десять, и железка там не вывозит. А на новую ноду с lxc собрали года три всего назад, lxc не позволял сделать такой оверсейл... И, в итоге, пользователи lxc живут чуть-лучше.

    Такое вот у меня видение проблематики. Не претендую на точность взглядов, так как тоже не имею карманного помойного хостера, чтобы статистику выкатить.

     
  • 3.9, бублички (?), 03:19, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ах как некрасиво, вы совсем забыли про vServer
     
     
  • 4.34, бублички (?), 11:37, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    то-есть Linux-VServer. даже сам уже забыл как называется, т.к. не пользовался лет 10
     

  • 1.59, Аноним (47), 16:40, 06/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Самая большая проблема с LXC для хипстеров в отличие от docker - он не работает на их яблозондах.
     
     
  • 2.65, Аноним (63), 19:49, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    работает (так же как докер - в вм)
     
  • 2.73, Аноним (73), 23:16, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    на маке и винде докер работает в виртуалке

    т е ставиш виртуалнку - в  нее убунту - в нее LXD

    и вуаля - LXD работает на маке

     
     
  • 3.94, Вы забыли заполнить поле Name (?), 04:18, 29/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Задание тебе - поднять там ipv6
     

  • 1.66, Ддд (?), 19:49, 06/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Докер может одной командой запустить контейнер а лхд нет
     
     
  • 2.71, Аноним (73), 23:14, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    LXD  это система контейнерной виртуализации на базе готовых проверенных образов

    поэтому мы не изучаем премудрости и нюансы такого тула как docker, а просто изучаем пару команд для управления контейнерами и используем стандартные средства ОС для конфигурации ПО в контейнере

     

  • 1.70, Аноним (-), 20:35, 06/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >lxd

    это тот который дырявый бай дезигн?
    https://bugs.launchpad.net/ubuntu/+source/lxd/+bug/1829071

     
     
  • 2.72, Аноним (73), 23:15, 06/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    для локальной разработки мне ок

    а для прода есть админы и облачные сервисы

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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