Maison  >  Article  >  Opération et maintenance  >  Quelle est la différence entre conteneur et docker

Quelle est la différence entre conteneur et docker

WBOY
WBOYoriginal
2021-12-29 09:53:1717904parcourir

Différence : 1. containersd n'a pas besoin de passer par dockershim, donc la chaîne d'appels est plus courte, et docker doit passer par, donc la chaîne d'appels est plus longue 2. docker appelle cni "docker-shim", containersd appelle cni ; "conteneur-cri".

Quelle est la différence entre conteneur et docker

L'environnement d'exploitation de ce tutoriel : système linux7.3, version docker-1.13.1, ordinateur Dell G3.

Quelle est la différence entre containersd et docker ?

Lors de l'utilisation de k8s, la chaîne d'appel utilisant docker et containersd est la suivante :

Quelle est la différence entre conteneur et docker

Il n'est pas difficile de voir que lors de l'utilisation de containersd, l'appel la chaîne est plus courte, non Ensuite, vous devez passer par dockershim et docker

data directory

Je crois que tout le monde sait que le répertoire de données de docker est par défaut le répertoire /var/lib/docker lors du passage à containersd, le répertoire de données est par défaut le répertoire de données ; /var/lib/containerd

Logs

Lorsque nous utilisons k8, si nous utilisons docker comme moteur d'exécution, docker est en fait responsable du placement des journaux du programme conteneur. Les fichiers journaux sous /var/log/pod et /var/log/container seront liés aux fichiers journaux correspondants sous /var/lib/docker. Si vous devez configurer certains paramètres pour le journal, vous pouvez les modifier directement. le fichier de configuration Docker. ;Et si nous utilisons maintenant containersd comme environnement d'exécution, le kubelet sera responsable du placement des journaux du conteneur sous /var/log/container sera connecté de manière logicielle aux fichiers journaux sous /var. /log/pod. Si des ajustements sont nécessaires dans les paramètres du journal, vous devez modifier la configuration liée à kubelet

CNI

Lorsque vous utilisez docker comme environnement d'exécution, docker-shim dans kubelet est responsable de l'appel de cni et lors de l'utilisation de containersd comme ; Au moment de l'exécution, le conteneurd-cri intégré dans conteneurd est responsable de l'appel de cni

[plugins."io.containerd.grpc.v1.cri".cni]       
bin_dir = "/opt/cni/bin"       
conf_dir = "/etc/cni/net.d"

Service de streaming

Les amis qui connaissent les k8 savent que les commandes telles que kubectl exec et kubelet log doivent communiquer avec le conteneur via le apiserver, qui implique des services de streaming. L'API Docker elle-même prend en charge le fait que le docker-shim dans kubelet est transmis via le flux de l'API Docker ; mais containersd doit être configuré séparément

[plugins."io.containerd.grpc.v1.cri"]     
stream_idle_timeout = "4h0m0s"    
 stream_server_address = "127.0.0.1"    
 stream_server_port = "0"     
enable_tls_streaming = false

Apprentissage recommandé : "Tutoriel vidéo Docker"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn