Является ли Alpine Linux реализацией Unikernel?

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

Я понимаю, что контейнеры Linux и Unikernels — это разные вещи, поскольку первые представляют собой реализации функций ядра (таких как пространства имен, контрольные группы и т. д.), совместно использующие ресурсы с ОС хоста, а вторые — это независимые специализированные библиотечные операционные системы, построенные вокруг приложений.

Но потом я наткнулся на образы, производные от Alpine Linux, в Dockerhub. Они очень легкие и очень специализированные. Но работают ли они на одних и тех же функциях LXC/runc?

Можно ли запустить unikernel под реализацией гипервизора с помощью Docker?

Чем отличаются альпийские образы от других?


person Rogério Peixoto    schedule 25.06.2016    source источник


Ответы (2)


Я не очень хорошо разбираюсь в unikernels, но я могу попытаться ответить на ваш последний вопрос:

Большинство образов Docker основаны на Ubuntu, основное отличие заключается в размере образа, в то время как образ Ubuntu имеет размер 183 МБ, а образ Alpine — только 4,5 МБ.

Поэтому Alpine имеет меньшую поверхность атаки и разработана для обеспечения безопасности. о/

Alpine Linux был разработан с учетом требований безопасности

Я думаю, что образы Alpine Linux работают с теми же функциями LXC/runc.

person Botz    schedule 25.06.2016
comment
Судя по внешнему виду, я думаю, это две разные вещи. Alpine — это облегченная операционная система, а unikernels — это целевые библиотечные операционные системы. - person Rogério Peixoto; 27.06.2016

Alpine не является unikernel. Это дистрибутив Linux, и я не согласен с тем, что он был разработан с учетом требований безопасности.

У него было несколько проблем (включая отсутствие паролей для root):

https://blog.qualys.com/technology/2019/06/11/alpine-docker-image-vulnerability-cve-2019-5021-how-to-detect-and-fix

Unikernels можно охарактеризовать тем, что они представляют собой единый процесс по своей структуре. Это означает, что вы буквально не можете разветвить/выполнить новую программу. Alpine, будучи Linux, не соответствует этому правилу.

Далее — Docker не является гипервизором. Он может использовать что-то вроде HVF на osx или kvm на linux, но в большинстве случаев это не так. Почему? Потому что большинство док-контейнеров, запущенных в производство, оказываются на виртуальных машинах Linux в общедоступном облаке. Запуск еще одной виртуальной машины поверх существующей требует серьезного снижения производительности, поэтому очень немногие делают это по собственному желанию.

С другой стороны, Unikernels можно развернуть как собственный AMI без базового Linux. Это также отличает их от небольших дистрибутивов Linux, таких как Alpine.

Есть еще много отличий (типа отсутствия пользователя, или отсутствия оболочки и т.д.), но в целом ни один Alpine не является unikernel и не имеет никаких преимуществ unikernel.

person eyberg    schedule 04.03.2020