Обновить

Docker без Docker. А что, если собрать контейнер своими руками?

Есть идея для небольшой лабораторной.

Мы привыкли, что для запуска контейнера достаточно выполнить:

docker run --rm -it alpine sh

Но что, если вообще убрать Docker? И не заменять его на Podman или другой контейнерный движок, а попробовать самостоятельно воспроизвести то, что он делает.

Хочу взять минимальную файловую систему Alpine Linux, немного поэкспериментировать с chroot, Linux namespaces и cgroups, а затем попробовать собрать из всего этого собственный примитивный контейнер.

Заодно разобраться, почему процесс внутри контейнера может иметь PID 1, как работает изоляция файловой системы и почему ядро Linux при этом остаётся общим с хостом.

Конечно, полноценную замену Docker мы так не получим, но цель немного другая - посмотреть, как контейнеризация устроена изнутри, без готовых инструментов.

Если эксперимент получится интересным, оформлю всё в отдельную лабораторную с командами, пояснениями и схемами, как обычно.


Теги:
+3
Комментарии4

Обзор нововведений в C# 15

Совсем скоро нам станет полноценно доступна новая версия C#, и мы продолжаем наш ежегодный цикл обзора нововведений. В этот раз команда Microsoft приготовила нам ряд очень интересных и ожидаемых изменений. Предлагаю рассмотреть их подробно.

Обзор нововведений в C# 15

Публикации