Как собрать Linux-контейнер с нуля без Docker
⚠️ ВНИМАНИЕ: Этот эксперимент крайне рекомендуется проводить только внутри виртуальной машины. Будет запущено много привилегированных команд, и автор не хочет случайно «убить» системы своих читателей.
Пошаговый план ручной сборки:
1. Подготовка файловой системы
2. Настройка Cgroups (Лимиты ресурсов)
3. Изоляция через Namespaces
4. Подготовка внутри контейнера (Настройка root)
5. Запуск пользовательского приложения
📊 Проверка в действии
• UTS Namespace: Меняем хостнейм внутри контейнера. На хосте он остается прежним. Работает!
• PID Namespace: Благодаря изоляции, процесс /bin/bash внутри контейнера имеет PID 1.
• Тест Cgroups (CPU): Запускаем задачу, интенсивно использующую процессор. Она упирается ровно в полку, которую мы установили ранее.
• Тест Cgroups (Memory): Запускаем tail для чтения из /dev/zero в буфер. Буфер быстро переполняется, превышает лимит 500 MiB, и контроллер памяти cgroup принудительно завершает процесс.
https://i-odmin.ru/kak-sobrat-linux-kontejner-s-nulja-i-bez-docker/
#linux #devops #sysadmin #containers #docker #underhood
👉 @i_odmin