The point of containers is they aren't VMs, yet Microsoft licenses SQL Server in containers as if they were VMs
And now to avoid container sprawl costing you plenty
Microsoft has slipped out licensing details for SQL Server running in containers and it will likely encourage developers to be pretty diligent in their use of Redmond’s database.
For purposes of licensing use of SQL Server software running within a container on a container runtime such as docker, cri-o, or containerd, (i) a container is considered to be a Virtual OSE, and (ii) the Physical or Virtual Cores available to that container are considered to be Hardware Threads. Customer’s use is subject to the Per Core License Model and any other License Terms relevant to the SQL Server Licenses Customer has appropriately assigned to the Licensed Server in connection with that use. For clarity, notwithstanding anything to the contrary, if hyperthreading is enabled, Customer must assign a Core License for each Hardware Thread mapped to a container, subject to a minimum of four Licenses.
A “Virtual OSE” is essentially a virtual machine so Microsoft is telling us that it considers containers to be VMs and the usual rules of per-core licensing apply, even though multiple containers can share one OS and a “classic” VM has its own.
And with containers often used to help applications scale by creating multiple parallel microservices, or running for short periods, the risk of container sprawl carries with it the risk of SQL server licensing sprawl.
So stick that in your continuous delivery pipeline and smoke it, before it smokes your SQL Server bills. ®