я хочу поднять на линуксе впн и nginx. Правильно ли я понял, что линукс будет общий для них для обоих, а vpn и nginx каким-то образом будут виртуализироваться в рамках этого линукса? Или же для впна и нжинкса будет создан отдельный линукс?
Как работают эти все слои на практике?
Смотрите у ОС есть ядро В нашем случае это Linux ядро Сама ОС - это набор исполняемых файлов и библиотек Отсюда у нас и появляются разные дистрибутивы. Просто поверх Linux ядра собираются образы с разными пакетами приложений. Контейнер - по сути изолированный дистрибутив. Поверх вашего ядра Linux создается изолированная среда, содержащая минимум пакетов. В этой среде вы запускаете Nginx
я имел ввиду. что хост это винда, например. На сколько я понимаю, контейнеры должны подгрузить линукс, если они зависимы от линукса
Докер на винде требует виртуальную машину на Linux Тот же WSL - это все еще виртуальная машина
ну вот, то есть будет общий слой для всех контейнеров в виде wsl, верно? А если wsl нет, то он установится? (ну или заставят установить)
Почитайте по ключевым словам cgroups, kernel namespaces, вот так и будут. Дополнительно можно capabilites. Условно - в ядре линукса есть изоляция процессов/сети/etc на уровне отдельных групп, бай дизайн.
Да, установится или заставят установить, верно
но не будет установлен отдельный wsl для каждого контейнера, верно?
на винде можно сделать wsl -l и увидеть, что докер-десктоп приносит просто свою wsl виртуалку. Или делать это в дефолтной(чуть геморойнее)
Обсуждают сегодня