Containers provide operating system level virtualization by running processes in isolated environments,usually also managing resource allocations like CPU shares and RAM. A container runtime enables users to ake effective use of these mechanisms by providing APIs and tooling that abstract the low level technical details.