Étant donné que toutes les distributions Linux exécutent le même noyau Linux (oui, c'est un peu simplifié) et ne diffèrent que par le logiciel utilisateur, il est assez facile de simuler un environnement de distribution différent - en installant simplement ce logiciel utilisateur et en prétendant qu'il s'agit d'une autre distribution. Pour être précis, l'installation du conteneur CentOS dans le système d'exploitation Ubuntu signifie que vous obtiendrez le userland de CentOS, tout en exécutant toujours le même noyau, pas même une autre instance de noyau.
Donc léger la virtualisation revient à avoir des compartiments isolés dans le même système d'exploitation. Au contraire, la vraie virtualisation consiste à avoir un autre système d'exploitation à part entière à l'intérieur du système d'exploitation hôte. C'est pourquoi docker ne peut pas exécuter FreeBSD ou Windows sous Linux.
Si c'était plus facile, vous pouvez penser que docker est une sorte d'environnement chroot très sophistiqué et avancé.