Комментарии 16
Спасибо, очень хорошо обесняется контейниризация и её отличия от виртуализации.
Под WSL оно заработает?
Неоднократно сталкивался с утверждением, что ПО в докере работает медленнее, чем чистая установка. Если это так и докер под капотом делает всё тоже самое, что описано в статье, то откуда берётся это замедление?
Мне кажется, как и многие другие утверждения «работает медленно», оно не основывается ни на каких объективных метриках, а основывается чисто на ощущениях и интуиции.
Сходу нашел статью где разница в производительности контринтуитивно тем больше, чем меньше нагрузка. Но причины понять не могу.
Надо уточнять, о какой ОС речь. Если Линукс, то замедление и дополнительно занимаемое место меньше, чем то же самое под другими ОС.
Медленнее, накладные расходы на изоляцию процессов и ФС, плюс явные ограничения на выделяемые для контейнера ресурсы. Накладные расходы не критичны в большинстве случаев, но они есть
А что такое «накладные расходы на изоляцию»? Я так понял, что сам механизм cgroups итак всегда работает, просто по умолчанию группа большая и одна.
Оно не медленнее работает, просто на работу самого докера нужны ресурсы, и если у системы с ресурсами проблема то это будет отражаться и на приложении.
Если хостовая ОС не линукс, то это сразу жирная виртуальная машина
Интересно, но к сожаление не очень явно освещен один из главных моментов - откуда в контейнере берется собственно операционная система? Поскольку явно не отражено, что используется ядро ОС хоста, может показаться, что в контейнере запускается полностью самостоятельная Alpine Linux. Отсюда часто возникает путанница между виртуализацией и контейнеризацией.
Пуру дней назад вышла статья прям на эту же тему
Вот в тему статьи, когда блокировали докер хаб, я написал проект по созданию контейнеров из scratch (без загрузки готовых образов). Там две OS на самом гитхабе собирается, с разными версиями под разные архитектуры, держите для справки https://github.com/kolserdav/docker-container
Как собрать Linux-контейнер с нуля и без Docker