web-dev-qa-db-fra.com

Différence entre LXC et libcontainer

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?

20
Yogesh Jilhawar
  • 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

http://blog.docker.com/wp-content/uploads/2014/03/docker-execdriver-diagram.png

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 de containerd, 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 comprendre containerd encore plus en profondeur, il y a documentation de conception dans leur dépôt GitHub.
Sous le capot, containerd utilise runc pour effectuer tout le travail Linux .

Voir plus sur " Comment containerd se compare à runC "

containerd

31
VonC

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/

1
Viswesn

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.

0
user6662643