129 votes

Quelle est la relation entre le système d'exploitation de l'hôte Docker et celui de l'image de base du conteneur ?

Je ne suis pas certain de poser la bonne question... mais en lisant tout ce que je peux trouver sur Docker, je vois que je peux installer Docker sur Ubuntu 12.04 (par exemple) et ensuite 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 me tromper complètement.

Mais je m'attendais à ce qu'il y ait une connexion éphémère entre le système de base et le conteneur.

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

103voto

creack Points 11635

Comme l'a mentionné BraveNewCurrency, la seule relation entre le système d'exploitation hôte et le conteneur est le noyau.

C'est l'une des principales différences entre Docker et les machines virtuelles "ordinaires" : il n'y a pas de frais généraux, tout se passe directement dans le noyau de l'hôte.

C'est pourquoi vous ne pouvez exécuter que des distributions/binaires basés sur Linux dans le conteneur. Si vous voulez exécuter 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 des images qui sont la représentation du système de fichiers. Vous pouvez installer n'importe quelle distribution linux ou simplement mettre des binaires.

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

Un autre point concernant les distributions : comme le noyau est toujours le noyau de l'hôte, vous n'aurez pas de module/rustines de noyau spécifiques fournis par la distribution.

25voto

BraveNewCurrency Points 4096

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

1voto

flow2k Points 706

Il y a une autre considération - même si les deux noyaux sont les mêmes, il y a un problème si le système d'exploitation hôte ne prend pas en charge Docker, comme RHEL 6 : https://access.redhat.com/solutions/1378023

Vous ne pourrez donc pas faire tourner un conteneur sur RHEL 6, même si l'image est une image Linux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X