Linux Container with Pid and Mount Namespace
Why? - My app needs Python3.8, foo lib version 1.2, your server has Python 3.9, 3.6, 3.12 and doesn't have foo lib.
Package an app's dependencies along with its core business logic
Run arbitrary user code on your machine
On Linux a Container is - Collection of Namespaces of different resources (Process, Mount, Net etc.).
Inside a container you only see resources in your namespace and not outside.
Outside the container you see everything inside your children namespaces
Resource allocation happens via CGroups ("How much memory or CPU to allocate this namespace?")