Есть модная технология Docker. Типа система контейнерной виртуализации. Есть несколько непоняток. Непонятно почему образы такие огромные. К примеру обычная инсталяция Питона на Винде весит около 100 Мб. А образ под Докер уже 700-800 Мб. Далее сам по себе Докер не работает ..ему нужна нормальная виртуалка типа Vbox или подобная. Это значит что там Докер ставит в виртуалку некую ОС типа мини Линукса без GUI а потом туда накатывает все остальное ... формируя образ. Или я не прав ? А если я прав ..то какая это контейнерная виртуализация ?
Докер упаковывает в контейнер не только приложение, но и окружение, в котором это приложение будет работать - фактически делает снапшот всей системы. А в окружение входит юзермодная часть операционной системы и все необходимые зависимости софта, который ты хочешь контейнеризовать. Проще говоря, в контейнер входит условно полноценный образ операционки вместе с твоим приложением. Поэтому образы такие большие. В этом и смысл докера: завернуть в контейнер не только процесс, но и его окружение - так, чтобы на любой хостовой системе это приложение работало одинаково и не зависело от хоста. Изначально он разрабатывался под Linux, в котором контейнеры разделяют ядро с хостом. На линуксе в докере не используется виртуализация: процессы изолированы от остальной системы средствами самого линукса, и потерь производительности нет. Процессы в докере и процессы на хосте для ядра линукса равнозначны - различаются лишь окружением, которое видят эти процессы. На винде такой возможности нет, поэтому на помощь приходит аппаратная виртуализация. Гипервизор запускает полноценное NT-ядро или ядро Linux, в зависимости от того, контейнер с какой системой ты хочешь запустить, и контейнеры запускаются поверх него, разворачивая для ядра юзермодное окружение, в котором будет работать твой контейнеризованный процесс.