Docker ?

Тема в разделе "WASM.BEGINNERS", создана пользователем asmlamo, 26 апр 2022.

  1. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.735
    Есть модная технология Docker.
    Типа система контейнерной виртуализации.
    Есть несколько непоняток.
    Непонятно почему образы такие огромные.
    К примеру обычная инсталяция Питона на Винде весит около 100 Мб.
    А образ под Докер уже 700-800 Мб.

    Далее сам по себе Докер не работает ..ему нужна нормальная виртуалка типа Vbox или подобная.
    Это значит что там Докер ставит в виртуалку некую ОС типа мини Линукса без GUI а потом туда накатывает все остальное ... формируя образ.
    Или я не прав ?
    А если я прав ..то какая это контейнерная виртуализация ?
     
  2. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.459
    Адрес:
    Россия, Нижний Новгород
    Докер упаковывает в контейнер не только приложение, но и окружение, в котором это приложение будет работать - фактически делает снапшот всей системы.
    А в окружение входит юзермодная часть операционной системы и все необходимые зависимости софта, который ты хочешь контейнеризовать.
    Проще говоря, в контейнер входит условно полноценный образ операционки вместе с твоим приложением. Поэтому образы такие большие.
    В этом и смысл докера: завернуть в контейнер не только процесс, но и его окружение - так, чтобы на любой хостовой системе это приложение работало одинаково и не зависело от хоста.

    Изначально он разрабатывался под Linux, в котором контейнеры разделяют ядро с хостом.
    На линуксе в докере не используется виртуализация: процессы изолированы от остальной системы средствами самого линукса, и потерь производительности нет.
    Процессы в докере и процессы на хосте для ядра линукса равнозначны - различаются лишь окружением, которое видят эти процессы.

    На винде такой возможности нет, поэтому на помощь приходит аппаратная виртуализация.
    Гипервизор запускает полноценное NT-ядро или ядро Linux, в зависимости от того, контейнер с какой системой ты хочешь запустить, и контейнеры запускаются поверх него, разворачивая для ядра юзермодное окружение, в котором будет работать твой контейнеризованный процесс.
     
    youneuoy нравится это.
  3. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.735
    То есть в Винде Докер работает через аппаратную виртуализацию по любому?
     
  4. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.459
    Адрес:
    Россия, Нижний Новгород
    Да, всегда, независимо от того, запускаешь ты в нём контейнер с виндой или контейнер с линуксом
     
    2Hard2Forget нравится это.