Выбор ответа Senior Образы и слои обновлено

Docker, containerd, runc

Вопрос

Как связаны Docker Engine, containerd и runc при запуске контейнера?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: dockerd передаёт команды containerd, а тот вызывает runc, который создаёт процесс по OCI. Это слои одного стека. dockerd предоставляет API и сборку, containerd управляет образами, снапшотами и контейнерами, а для создания процесса вызывает OCI-рантайм runc (через shim).

Варианты ответа

  1. runc это графический интерфейс Docker Desktop, а containerd сетевой плагин для bridge-сетей
  2. containerd нужен только Kubernetes, Docker Engine запускает процессы через runc напрямую
  3. Это три конкурирующих рантайма, на узле всегда установлен только один из них
  4. dockerd передаёт команды containerd, а тот вызывает runc, который создаёт процесс по OCIправильный ответ

Разбор

Это слои одного стека. dockerd предоставляет API и сборку, containerd управляет образами, снапшотами и контейнерами, а для создания процесса вызывает OCI-рантайм runc (через shim). Kubernetes ходит в containerd напрямую через CRI, без Docker, но Docker тоже использует containerd внутри. runc это CLI-утилита низкого уровня, а не интерфейс.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.