Ответ
Контейнер в Linux — это изолированное окружение для запуска процессов, использующее механизмы ядра Linux: namespaces для изоляции (процессов, сети, файловой системы) и cgroups для ограничения и учета ресурсов (CPU, память, I/O). Контейнер разделяет ядро с хост-системой, что делает его легковеснее виртуальной машии.
Ключевые особенности:
- Легковесность: Накладные расходы минимальны по сравнению с ВМ, так как нет гостевой ОС.
- Быстрый запуск: Контейнеры запускаются за секунды.
- Портативность: Образ контейнера содержит все зависимости и может быть запущен на любой системе с совместимым ядром и средой выполнения (например, Docker, containerd).
- Изоляция: Процессы, файлы, сетевые стеки и пользователи внутри контейнера изолированы от хоста и других контейнеров.
Пример создания и запуска контейнера с Docker:
# Запуск контейнера из образа ubuntu с интерактивной оболочкой
sudo docker run -it --name my_container ubuntu:22.04 /bin/bash
Внутри этого контейнера вы увидите изолированную файловую систему, собственные процессы (например, ps aux) и сетевой интерфейс.