Namespaces are a Linux (kernel) concept which can be used to create containers. They allow isolating a set of processes with different resources. Resources include process IDs, hostname, file names, networking etc.