Docker container isolation, se soucie-t-il de l'OS Linux sous-jacent?

si je lance Docker Engine et le même conteneur sur un ensemble de distributions Linux différentes, le conteneur fonctionnera-t-il de la même manière? Je demande parce que dans de nombreux cas, les applications dépendent d'une distribution Linux spécifique pour certaines ressources, comme les polices. Si mon application tournant dans un conteneur Docker dépend d'une police utilisée dans Ubuntu (et il peut y avoir beaucoup d'autres dépendances), comment est-ce géré? Est-ce que je dois installer la police à l'intérieur du conteneur, est-ce que je dois exécuter Ubuntu à l'intérieur le conteneur qui exécute l'application, ou l'application utilise-t-elle des polices de caractères du système d'exploitation sous-jacent qui exécute le conteneur?

10
demandé sur user1340582 2015-04-28 08:56:50

2 réponses

toutes les ressources manquantes doivent être installées dans un Docker image (qui peut commencer à partir de l'image ubuntu).

Il ne doit pas dépendre de l'hôte pour les dépendances.

L'idée est d'être capable de reproduire l'environnement chaque fois qu'un conteneur est exécuté à partir d'une image.

un conteneur ne voit pas les ressources de l'hôte (à côté des volumes montés), car il a le moteur Docker entre le conteneur et l'hôte, en ordre de configurer cgroups et namespaces pour contrôler quelles ressources le conteneur peut voir et accéder.

Docker

l'image " fedora " référencée dans jboss / base est la image de base :

images

dans la terminologie Docker, une lecture seule La couche est appelée une image. Une image ne change jamais.

comme Docker utilise un système de fichiers Union, les processus pensent que l'ensemble du système de fichiers est monté en lecture-écriture. Mais tous les changements jusqu'à la première couche inscriptible, et en dessous, le fichier d'origine dans l'image en lecture seule est inchangé.

Puisque les images ne changent pas, les images n'ont pas d'état.

voir " Quelle est la relation entre le docker OS hôte et l'image de base du conteneur OS? ":

La seule relation entre l'OS hôte et le conteneur est le Noyau.

comme le noyau est toujours le noyau de l'hôte, vous n'aurez pas de module/correctifs spécifiques fournis par la distribution.

10
répondu VonC 2017-05-23 11:53:50

ce que vous devez être prudent est

  • la dépendance du noyau,
  • et certaines configurations de contrôle d'accès obligatoire (SELinux, Apparmor), qui dépendent de la distribution et peuvent avoir un impact sur le fonctionnement de vos conteneurs Docker.
0
répondu xuhdev 2015-04-29 10:01:42