vott2.ru
отметили
1
человек
голосовать
Контейнер без Docker. Собираем контейнер в Linux своими рукамиxakep.ru
max_dev, · Политика
image

В новости на «Хакере» объясняется, что контейнеризация в Linux не требует обязательного использования Docker, так как базируется на встроенных механизмах ядра. Автор предлагает собрать изолированное окружение вручную, используя системные вызовы и утилиты.

Основой контейнера служат три ключевые технологии: namespaces для изоляции процессов, cgroups для ограничения ресурсов и chroot для изоляции файловой системы. Namespaces позволяют процессам видеть только своё окружение, cgroups — лимитировать CPU и память, а chroot — менять корневой каталог.

Для создания контейнера без Docker понадобится собрать минимальный корневой образ, например, через утилиту debootstrap. Затем запускается процесс в изолированном окружении с помощью unshare, который создаёт новые namespaces, и chroot, чтобы перенаправить корневую директорию в собранный образ.

Автор приводит пример командной строки: сначала создаётся папка с файловой системой, затем unshare с флагами —fork и —pid запускает процесс, после чего chroot переключает корень. В результате получается полноценный контейнер, в котором можно выполнять команды без привилегий Docker.

На практике такой подход демонстрирует, что Docker — лишь надстройка над стандартными средствами Linux. Это полезно для понимания внутренней работы контейнеров и может пригодиться в сценариях, где нужен минимальный вес или повышенная безопасность.

Комментарии (0)

Чтобы комментировать, нужно войти.