Quelle est la relation entre le système d’exploitation hôte docker et le système d’exploitation d’image de base du conteneur?

Je ne suis pas sûr que je pose la bonne question … mais pendant que je lisais tout ce que je peux trouver sur le menu fixe, je vois que je peux installer Docker sur Ubuntu 12.04 (par exemple) et puis je peux installer un conteneur Fedora ou une version différente d’ubuntu? (Il y a un exemple où l’utilisateur a installé busybox dans le conteneur.)

Et bien sûr, je pourrais avoir complètement tort.

Mais je m’attendais à une connexion éphémère entre le système de base et le conteneur.

reformulé: quelle est la relation entre l’OS hôte et le système d’exploitation de l’image de base du conteneur?

Comme mentionné par BraveNewCurrency, la seule relation entre le système d’exploitation hôte et le conteneur est le kernel.

C’est l’une des principales différences entre les machines virtuelles “docker” et “normales”, il n’y a pas de surcharge, tout se passe directement dans le kernel de l’hôte.

C’est pourquoi vous ne pouvez exécuter que des dissortingbutions / binarys basés sur Linux dans le conteneur. Si vous voulez faire autre chose, ce n’est pas impossible, mais vous aurez besoin d’une sorte de virtualisation dans le conteneur (qemu, kvm, etc.)

Docker gère les images représentatives du système de fichiers. Vous pouvez installer n’importe quelle dissortingbution Linux ou simplement mettre des binarys.

En effet, pour la commodité de l’exemple, nous nous appuyons souvent sur les images de base, mais vous pouvez également créer votre image sans aucune des bibliothèques / fichiers binarys de dissortingbution. De cette façon, vous auriez un conteneur vraiment minuscule mais fonctionnel.

Un autre point concernant les dissortingbutions: comme le kernel est toujours le kernel de l’hôte, vous n’aurez aucun module / correctif de kernel spécifique fourni par la dissortingbution.

Littéralement, la seule chose qu’ils ont en commun est le kernel. Leur monde entier (système de fichiers) se trouve dans le conteneur Docker.