Какова роль базового образа Linux в Docker и почему во многих рецептах устанавливают именно его перед другими зависимостями? В связи с этим, для каких случаев рекомендуется использовать базовый образ Linux и почему для некоторых приложений, например Node.js, рекомендуется устанавливать его поверх образа Linux? Каковы преимущества такого подхода и в каких случаях он необходим?
Операционная система Linux часто используется в качестве базового слоя для образов Docker из-за своей надёжности, производительности, эффективности и открытого исходного кода. Кроме того, многие из существующих инструментов, библиотек и технологий имеют поддержку для Linux, что делает его идеальным выбором для базового слоя Docker. Роль базового образа Linux такова, что он предоставляет минимальную среду, необходимую для запуска приложений в контейнере Docker. Он содержит все необходимые зависимости и настройки, чтобы обеспечить работоспособность приложения. Многие рецепты включают установку базового образа Linux перед другими зависимостями, так как это позволяет создать однородную среду для выполнения приложений в контейнере Docker. Рекомендуется использовать базовый образ Linux для различных случаев, включая web-серверы, базы данных, сетевые приложения и другие виды серверных приложений. Когда дело касается приложений, таких как Node.js, рекомендуется устанавливать его поверх образа Linux из-за его совместимости и минимальной сложности настройки. Преимущества использования базового образа Linux включают надежность, более быстрое развертывание, более эффективное использование ресурсов и поддержку большого количества инструментов и технологий. Однако есть случаи, когда необходимо использовать другие базовые образы, например, приложения, завязанные на Windows. Также, в некоторых случаях, возможно использование специально настроенных базовых образов для оптимизации производительности и ресурсов.
Потому что за установку и использование windows (а в виртуалке так еще и лимиты на версии) компания майкрософт требует деньги, много, жадно. Нормальная ситуация - десяток одновременно работающих docker образов и сотня, ожидающие запуска, вы готовы за каждый платить порядка 20$ в месяц?
Потому что никаких инструментов (кроме реверсинженеринга и без гарантий) по упрощению (сделать ее мельче, менее требовательной и заточенную под задачу) установки windows (да и любой другой, отличной от linux) - не существует. Потому что под windows, как бы народ не старался, не существует единой системы автоматизированной установки приложений из командной строки, а те что есть либо от одного производителя, либо порт с linux, либо 100500 несовместимых стандартов пакетных менеджеров, а майкрософт умудрились сделать свой магазин максимально закрытым и платным (для разработчиков), а пользователям не дали возможности устанавливать свои репозитарии.
А еще windows даже на синтетических бенчмарках в большом количестве задач - медленнее (есть объективные и не очень причины почему так)... извините, но windows живет только благодаря легаси, пока крупные поставщики софта по инерции будут требовать windows (невозможно чаще всего перенести на другую ос но есть лазейки), компания будет держаться на плаву... как только наберется критическая масса - этот монстр потонет, погребая за собой много хороших проектов (например monodevelop был убит как конкурент vs?)