It wasn't that long ago that we were doing service-per-VM and really OP has just described an implementation of that strategy with containers.
You would scale the virtual machines to try and reach optimal resource usage rather than pick a standard fleet of virtual machines for all workloads and let a scheduler do some kind of knapsack scheduling based on available resources.