Post #1048
3.38K
Как контейнер устроен «внутри»?
Всем привет!
Сегодня хотим поделиться с вами еще одной теоретической статьей из цикла «как оно устроено». Такие статьи помогают лучше разобраться в технологии, в том, чего от нее ожидать и, как следствие, как ее можно защищать.
Если упростить, то контейнер это:
🍭 Один или несколько процессов, выполняемых пользователем (Processes)
🍭 Он изолирован от ОС, на которой запущен (Namespaces)
🍭 Также он ограничен в доступных ресурсах (Cgroups)
🍭 У него есть собственная файловая система, независимая от ОС, на которой он запущен (Chroot)
Да, описание не совсем корректное и его можно улучшить, но оставим его для упрощения восприятия.
В статье Автор описывает что такое Processes, Namespaces, Cgroups и Chroot. Далее он предлагает создать «аналог контейнера» с использованием Golang: код и комментарии на месте.
Создание идет «по нарастающей» - от простого вывода в stdout до «изоляции и ограничения» с использованием Namespaces и Cgroups.
Всем привет!
Сегодня хотим поделиться с вами еще одной теоретической статьей из цикла «как оно устроено». Такие статьи помогают лучше разобраться в технологии, в том, чего от нее ожидать и, как следствие, как ее можно защищать.
Если упростить, то контейнер это:
🍭 Один или несколько процессов, выполняемых пользователем (Processes)
🍭 Он изолирован от ОС, на которой запущен (Namespaces)
🍭 Также он ограничен в доступных ресурсах (Cgroups)
🍭 У него есть собственная файловая система, независимая от ОС, на которой он запущен (Chroot)
Да, описание не совсем корректное и его можно улучшить, но оставим его для упрощения восприятия.
В статье Автор описывает что такое Processes, Namespaces, Cgroups и Chroot. Далее он предлагает создать «аналог контейнера» с использованием Golang: код и комментарии на месте.
Создание идет «по нарастающей» - от простого вывода в stdout до «изоляции и ограничения» с использованием Namespaces и Cgroups.
- 🔥 9
- 👍 5



