Що відбувається при запуску контейнера?
При запуску контейнера Docker бере образ і створює з нього ізольований процес. Послідовність кроків на рівні junior виглядає так:
1. Docker бере образ
Образ - це шаблон (шари з файловою системою і конфігурацією). Він - основа майбутнього контейнера.
2. Створюється writable-шар
Поверх шарів образу Docker додає змінюваний шар, куди будуть потрапляти всі зміни контейнера (логи, тимчасові файли тощо).
3. Контейнер отримує ізольовані ресурси
Docker налаштовує namespaces і cgroups, щоб контейнер:
- бачив тільки свої процеси,
- мав свою файлову систему,
- мав своє мережеве середовище,
- міг використовувати обмежені ресурси.
4. Запускається основний процес
Docker виконує команду, вказану в CMD або ENTRYPOINT в образі.
Цей процес = "життя контейнера".
5. Контейнер працює, поки живе процес
Якщо процес завершується - контейнер автоматично зупиняється.
Підсумок в одній фразі
При запуску Docker-контейнера створюється ізольоване середовище на основі образу, накладається writable-шар і запускається основний процес, від якого залежить життя контейнера.
Якщо хочеш, можу розібрати той самий ланцюжок на middle-рівні (з деталями про OverlayFS, PID namespace, network namespace тощо).
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.