En parcourant les documents de docker, j'ai trouvé que docker utilise maintenant libcontainer au lieu de LXC. Quelqu'un at-il une idée de la façon dont libcontainer est meilleur (si oui ..) que LXC?
Conteneurs Linux (LXC) était utilisé avant docker 0.9 (Le 13 mars 2014, avec la sortie de la version 0.9 , Docker a abandonné LXC comme environnement d'exécution par défaut et l'a remplacé par sa propre bibliothèque libcontainer) comme un pilote d'exécution par docker, et offrait une interface en espace utilisateur pour les fonctionnalités de confinement du noyau Linux. Il est très spécifique à Linux
libcontainer (maintenant opencontainers/runc
) est une abstraction, afin de prendre en charge un plus large éventail de technologies d'isolement comme décrit dans cet article
Cela signifie Docker s'éloigne de son implémentation d'origine, permettant à d'autres fournisseurs (comme CoreOS) d'implémenter leur propre version de conteneurs .
Remarque: depuis lors ( Quelle est la différence entre runc, containerd, docker? ) montre:
En 2016, l'espace conteneur était en plein essor et Docker a décidé de diviser le monolithe en parties distinctes, dont certains autres projets peuvent même s'appuyer sur - c'est ainsi
containerd
s'est produit. C'était Docker 1.11 (donc à peu près l'histoire ancienne).
Containerd est un démon qui fait office de façade API pour différents runtimes de conteneurs et OS. Lors de l'utilisation decontainerd,
vous ne travaillez plus avec les appels système, au lieu de cela vous travaillez avec des entités de niveau supérieur comme l'instantané et le conteneur - le reste est résumé.
Si vous voulez comprendrecontainerd
encore plus en profondeur, il y a documentation de conception dans leur dépôt GitHub.
Sous le capot,containerd
utiliserunc
pour effectuer tout le travail Linux .
Voir plus sur " Comment containerd se compare à runC "
Je vous recommande plutôt de parcourir ce lien pour avoir une compréhension complète des raisons pour lesquelles Docker a lancé libcontainer
http://www.zdnet.com/article/docker-libcontainer-unifies-linux-container-powers/
Comme je le sais .. LXC était le pilote d'exécution par défaut pour le moteur docker pour exécuter son conteneur/espace de noms et autres. Docker a développé "libcontainer" et l'a ajouté à son moteur docker. Corrigez-moi si je me trompe.