Как работает Docker под капотом
Docker использует несколько ключевых технологий Linux для изоляции процессов:
-
Namespaces - обеспечивают изоляцию процессов, сети, файловой системы и других ресурсов. Каждый контейнер работает в своем namespace, не видя процессы хоста.
-
Cgroups (Control Groups) - ограничивают и контролируют использование ресурсов (CPU, память, дисковый I/O) для каждого контейнера.
-
Union File Systems (OverlayFS, AUFS) - позволяют создавать слоистые файловые системы. Каждый слой в Docker образе - это изменение относительно предыдущего.
-
Container Runtime (runc) - низкоуровневая библиотека, которая запускает контейнеры, используя вышеуказанные технологии.
Пример запуска процесса в изолированном namespace:
# Создаем новый PID namespace
unshare --pid --fork bash
# В новом namespace виден только этот процесс
ps auxDocker Engine управляет этими компонентами, предоставляя удобный API для работы с контейнерами.

офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру