Namespaces é um recurso de kernel usado por contêineres como o LXC ou o docker. Você tem vários tipos, namespaces de PID, namespaces de usuários, ... E você está certo, é bastante complicado no começo. Eu acho que este post antigo tem uma boa explicação do porquê é útil para containers: link
So, why would I want to do this? Well, this is especially useful for providing root access inside of a container. Imagine that the root user (uid 0) in container A maps to uid 1000, and that root in container B maps to user id 2000 outside the container. Similar to network port mapping, this allows the administrator to give someone uid 0 (root) in the container without giving them uid 0 on the underlying system. It also allows a user to freely add/delete users inside the container.
No RHEL 7.4, deve ser incluído o kernel, mas desabilitado pela configuração (o número de namespaces disponíveis é definido como zero por padrão). Basta executar:
echo 10000 > /proc/sys/user/max_user_namespaces