Давайте для начала определимся с определением "виртуалка". В Вашем контексте вопроса:
Про разработку, насколько я понял, с использованием виртуалок, верно? Это определение можно применить не только к виртуализации как таковой, но и к контейнеризации в целом, хотя технические различия у них есть и довольно много. Так что продолжим с этого, имея в голове инфу о том, что под виртуалкой мы подразумеваем какую-то
абстрактную коробку (это только что придуманный термин) внутри которой это всё крутится, не важно что это, виртуалка или контейнер.
Этой "коробкой" можно назвать вашу ОС. Туда вы ставите всякие apache, mysql, python (давайте называть это AMP), как говорите. Всё ок.
А теперь чуть изменим правила:
1) Берём коробку на Ubuntu и запихиваем туда этот "AMP". Теперь у вас внутри вашей ОС есть коробка со всем необходимым.
2) Берём коробку на Windows и запихиваем туда этот "AMP". Теперь у вас на компьютере две коробки, которые работать могут совершенно одновременно.
Ну т.е. понимаете, да? У вас внутри, ну, допустим, MacOS висит и Windows и Ubuntu, внутри которых установлен стек "AMP" и один и тот же код, разрабатывая локально вы можете одним кликом мыши/клавиатуры прогонять и там, и там.
Host OS (MacOS) -> Windows -> "AMP"
-> Ubuntu -> "AMP"
В случае "контейнеров", например Docker, обычно делают чуть иначе:
Host OS -> Linux -> Apache
-> Linux -> MySQL
-> Linux -> Python
Т.е. под каждую программу отдельный контейнер. Теперь нам не надо мучаться со сборкой. Если что-то поломается мы можем просто взять, поправить конфиги и просто переустановить с нуля отдельную программку. А можем вообще организовать как-то так:
Host OS -> Linux -> Apache (который смотрит на Python 2 и отдаёт результат по 127.0.0.1:80)
-> Linux -> Apache (который смотрит на Python 3 и отдаёт результат по 127.0.0.1:81)
-> Linux -> MySQL
-> Linux -> Python 2
-> Linux -> Python 3
Можем открыть две вкладки браузера и смотреть как код работает на совершенно разных версиях питона! И при этом локально у Вас вообще ничего не будет установлено, никаких конфигов, никакого мусора. Что-то не понравится или поломается берёте и сносите кусок, заменяя его на другой. Тут уже воображение.