Cet article s'adresse à ceux qui commencent tout juste à utiliser les conteneurs Linux et Docker. J'ai rassemblé un aperçu approximatif pour comprendre les conteneurs difficiles à atteindre si vous ne les avez pas touchés.
Comme il est long, je l'ai écrit en deux parties: Introduction à Linux Container / Docker (Part 2).
Un conteneur est simplement une technologie qui isole une application du système d'exploitation hôte. Créez un espace isolé dans le système d'exploitation Linux et créez un environnement qui peut fonctionner sans interférer avec les processus dans d'autres conteneurs ou les processus sur le système d'exploitation hôte. En même temps, un environnement propre peut être fourni en créant un environnement distinct du système d'exploitation hôte existant.
Avant de plonger dans les détails des conteneurs, commençons par Linux. Le mot Linux a deux significations: «noyau Linux» au sens étroit et «distribution Linux» au sens large.
Le noyau est la partie centrale du système d'exploitation et effectue la gestion de base des processus et de la mémoire. Le noyau est commun à tous les systèmes d'exploitation basés sur Linux.
Le noyau Linux seul ne peut pas être installé directement sur un PC ou un serveur. Une «distribution Linux» est un paquet de divers pilotes, bibliothèques et applications nécessaires pour interagir avec HW.
Exemple:
** ⇒ Bien que cela semble différent, tous les OS Linux utilisent le même noyau Linux. ** (Bien sûr, la version est différente)
LXC est un outil pour créer un environnement de conteneur en utilisant les fonctions du noyau Linux. Il utilise principalement les fonctions du noyau suivantes.
--Namespace… Divisez les processus et les ressources NW (telles que les cartes réseau virtuelles) afin qu'ils ne puissent pas interférer les uns avec les autres. --CGroup: Group procells et limite les ressources telles que le CPU et la mémoire qui peuvent être utilisées par chacun.
** Il est plus facile de comprendre (je pense) de considérer un conteneur comme un "processus isolé" que de le penser comme une "VM compacte" **
VM ... Émulez le matériel et démarrez le système d'exploitation dessus Container ... isole apparemment les processus et les répertoires sur le même système d'exploitation
** Les VM et les conteneurs sont similaires et différents. L'approche est exactement le contraire. ** **
VM ... entraîne une surcharge pour émuler le matériel et exécuter le système d'exploitation Conteneur ... L'entité est juste un processus en cours d'exécution sur le système d'exploitation hôte, il n'y a donc presque pas de frais généraux. (*)
VM ... Installez et utilisez beaucoup de logiciels comme un serveur physique Conteneur ... Fondamentalement, 1 conteneur 1 logiciel. N'entrez pas de bibliothèques et de commandes inutiles (*)
Vous pouvez le voir en utilisant la commande ps
à l'intérieur du conteneur.
Normalement, Linux dérive un grand nombre de processus enfants du processus d'initialisation de PID1, mais vous pouvez voir que PID1 devient soudainement Apache dans le conteneur.
Habituellement comme ça. PID1 est «init».
Il a les mérites suivants. (Cité sur le site officiel de LXC)
Sécurité améliorée En empêchant une application d'interférer avec d'autres applications, il est possible de réduire les dommages causés lorsque le système est envahi.
Accouplement lâche amélioré Étant donné que les applications peuvent être exécutées dans un système d'exploitation hôte sans interférer les unes avec les autres, les modifications apportées à un logiciel n'affectent pas les autres logiciels.
Abstraction du système Le conteneur masque le système d'exploitation hôte et le matériel et peut créer un environnement qui fonctionne de manière stable dans n'importe quel environnement.
Dans un conteneur, vous pouvez facilement créer et détruire un ensemble d'applications et de bibliothèques nécessaires pour les exécuter.
La substance du conteneur est un répertoire ou un processus sur le système d'exploitation hôte séparé par Namespace.
Fondamentalement, seuls les fichiers minimum nécessaires au fonctionnement sont placés dans le conteneur, Il n'est pas impossible de l'utiliser comme conteneur pour toute la distribution.
Passez à Introduction à Linux Container / Docker (Partie 2).
Recommended Posts