В чем различия между виртуальными машинами и контейнерами?

Я прохожу курс “от 0 до Linux админа” на этом сайте, и у меня возник вопрос: в чем ключевые отличия между виртуальными машинами и контейнерами с точки зрения управления памятью и производительности? Насколько хорошо контейнеры, такие как Docker, работают с технологией NUMA по сравнению с виртуальными машинами, использующими KVM? Интересно понять, как различия в архитектуре влияют на оптимизацию и управление ресурсами в реальных сценариях.

Ну, слушай, я тут замутил попытку разобраться, что там такое с виртуальными машинами и контейнерами. Думал, ща все пойму, вооружусь знаниями, но, как обычно, не тут-то было.

Вот, например, на первом этапе я начал гуглить, в чем разница между этими двумя штуками. Понимаешь, виртуальные машины – это, считай, целый компьютер, у которого своё собственное «железо», а контейнеры, это, грубо говоря, такие легковесные версии, которые живут внутри одной ОС. Чет вроде бы просто, но когда начал углубляться, все эти нюансы с сетями, доступом к файловой системе и всякими API – тут я уже потупил.

Я там пытался запустить пару контейнеров и виртуалок, думал, на практике разберусь. Но что-то пошло не так… Вот, к примеру, с виртуальными машинами я пытался установить одну из популярных ОС, а у меня все вылетало с ошибками. А с контейнерами, ну, тут вообще потемки – всякие ограничения на доступ к ресурсам, да и с сетью было пипец как сложно. Я так заморочился, что в конце концов просто плюнул и решил искать курсы.

И тут мне попалась на глаза ссылка на курсы на Yodo. Я видел, что там охрененные лекции, которые объясняют все на пальцах. Скинул себе в закладки, думаю, потом подтяну свои знания. Если тоже ваяешь с этой темой, загляни, может, поможет: https://yodo.im/#courses.

Вот такие пироги. В общем, я еще не попал в «Светлое Будущее», но буду долбить эту тему дальше. Надеюсь, с курсами получится у меня разобраться!