Просматривая документы docker, я обнаружил, что docker теперь использует libcontainer вместо LXC. Кто-нибудь знает, как лучше работает libcontainer (если так..), чем LXC?
Разница между LXC и libcontainer
Ответ 1
-
Контейнеры Linux (LXC) использовались до докера 0.9 (13 марта 2014 года, с выпуском версии 0.9, Docker отбросил LXC в качестве среды выполнения по умолчанию и заменил его собственной библиотекой libcontainer) в качестве одного драйвера выполнения от docker, и предложил пользовательский интерфейс для функций локализации ядра Linux. Это очень специфично для Linux
-
libcontainer (теперь
opencontainers/runc
) - это абстракция для поддержки более широкого спектра технологий изоляции, как описано в этой статье.
Это означает, что Docker абстрагируется от своей первоначальной реализации, позволяя другим поставщикам (таким как CoreOS) реализовывать свои собственные версии контейнеров.
Примечание: с тех пор (Какая разница между runc, containerd, docker?) Показывает:
В 2016 году контейнерное пространство находилось на подъеме, и компания Docker решила разделить монолит на отдельные части, некоторые из которых могут быть построены на других проектах - так сложилось в
containerd
. Это был Docker 1.11 (очень древняя история).
Containerd - это демон, который действует как API-интерфейс для различных сред выполнения контейнеров и ОС. При использованииcontainerd,
вы больше не работаете с системными вызовами, вместо этого вы работаете с объектами более высокого уровня, такими как снимок и контейнер, - остальное абстрагируется.
Если вы хотите глубже понятьcontainerd
, то есть проектная документация в их репозитории GitHub.
Под капотомcontainerd
используетrunc
для выполнения всей работы с Linux.
Смотрите больше на " Как containerd сравнивается с runC "
Ответ 2
Я бы скорее рекомендовал вам пройти через эту ссылку, чтобы иметь полное представление о том, почему Docker начал libcontainer
http://www.zdnet.com/article/docker-libcontainer-unifies-linux-container-powers/
Ответ 3
Насколько мне известно... LXC был драйвером исполнения по умолчанию для механизма докера для выполнения его контейнера/пространства имен и прочего. Docker разработал libcontainer и добавил в свой механизм докеров. Поправь меня, если я ошибаюсь.
Ответ 4
Ну, разве это не в контейнере, это ядро времени выполнения, которое формирует основу для Docker?