@Alex657913

Зачем в образ docker в качестве первого слоя устанавливают linux дистрибутив?

Вопрос от новичка в Docker, нигде не найду ответа. Во многих рецептах и примерах, начинают с установки образа linux (FROM linux ....), независимо от того, какая целевая ОС используется под докером. Никак не могу понять, для чего это нужно? Пока ставил только Redis и все работает в отдельном контейнере. Тем не менее, насколько я понял, например ту же node.js таки желательно ставить именно поверх linux'а? Потому-что во многих примерах так делается (хотя в некоторых ставится отдельно и про линукс умалчивается). По идее запуск отдельной ос это доп. нагрузка. Буду признателен за объяснение, какой смысл в Docker устанавливать в качестве первого слоя linux и уже поверх него остальные зависимости? Это обязательно или желательно, если желательно, то в каких случаях?
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 3
@rPman
Потому что за установку и использование windows (а в виртуалке так еще и лимиты на версии) компания майкрософт требует деньги, много, жадно. Нормальная ситуация - десяток одновременно работающих docker образов и сотня, ожидающие запуска, вы готовы за каждый платить порядка 20$ в месяц?

Потому что никаких инструментов (кроме реверсинженеринга и без гарантий) по упрощению (сделать ее мельче, менее требовательной и заточенную под задачу) установки windows (да и любой другой, отличной от linux) - не существует. Потому что под windows, как бы народ не старался, не существует единой системы автоматизированной установки приложений из командной строки, а те что есть либо от одного производителя, либо порт с linux, либо 100500 несовместимых стандартов пакетных менеджеров, а майкрософт умудрились сделать свой магазин максимально закрытым и платным (для разработчиков), а пользователям не дали возможности устанавливать свои репозитарии.

А еще windows даже на синтетических бенчмарках в большом количестве задач - медленнее (есть объективные и не очень причины почему так)... извините, но windows живет только благодаря легаси, пока крупные поставщики софта по инерции будут требовать windows (невозможно чаще всего перенести на другую ос но есть лазейки), компания будет держаться на плаву... как только наберется критическая масса - этот монстр потонет, погребая за собой много хороших проектов (например monodevelop был убит как конкурент vs?)
Ответ написан
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Затем, что линукс самая распространённая серверная ОС и докер в основном применяется на серверах и разработчиками серверного/сетевого ПО. Кроме того, как уже правильно сказали про контейнерезацию винды, есть еще и другие ОС: например FreeBSD. Там тоже есть контейнеризация и вирутализация, например - jails, точно так же позволяет запускать контейнеры с FreeBSD внутри и ставить там эксперименты или запускать различное ПО. И есть еще куча других инструментов. А суть контейнеризации проста: поставить конкретные зависимости для конкретного ПО и легко ими управлять, при этом не влияя на хостовую ОС и не получая от неё же влияние. Что проще - запустить один настроенный докер контейнер или же выполнить кучу команд и поставить кучу дополнительного софта, который может оказаться несовместим с текущей конфигурацией?
Ответ написан
Комментировать
@darst
Так же ОС Windows потребляет намного больше ресурсов (цпу, озу) чем Linux.
А так как сейчас все переходят в облако, то это получается дорого.
П.С. по поводу лицензии для Windows можете почитать на docker hub
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы