Auf Wiedersehen Docker: So wechseln Sie in 5 Minuten zu Containerd

Auf Wiedersehen Docker: So wechseln Sie in 5 Minuten zu Containerd

Docker ist eine sehr beliebte Containertechnologie. In vielen Artikeln hieß es, dass sie von K8S aufgegeben und durch eine andere Containertechnologie ersetzt wurde: containerd! Tatsächlich ist containerd nur die zugrunde liegende Containerlaufzeit, die von Docker getrennt ist, und seine Verwendung unterscheidet sich nicht von Docker. Dieser Artikel stellt hauptsächlich die Verwendung von containerd vor und ich hoffe, er wird für alle hilfreich sein!

Einführung in containerd

Containerd ist eine branchenübliche Container-Laufzeitumgebung, bei der Einfachheit, Robustheit und Portabilität im Vordergrund stehen. Containerd kann den gesamten Container-Lebenszyklus im Host verwalten, einschließlich der Übertragung und Speicherung von Container-Images, der Ausführung und Verwaltung von Containern, der Speicherung und der Vernetzung.

Docker vs. Containerd

Containerd ist ein von Docker getrenntes Projekt, das als Container-Laufzeitumgebung auf niedriger Ebene verwendet werden kann. Jetzt ist es eine bessere Wahl für die Kubernetes-Container-Laufzeitumgebung geworden.

Nicht nur Docker, sondern auch viele Cloud-Plattformen unterstützen Containerd als zugrunde liegende Container-Laufzeitumgebung. Weitere Einzelheiten finden Sie in der folgenden Abbildung.

K8S CRI

K8S hat CRI (Container Runtime Interface) veröffentlicht, das die Container-Laufzeitschnittstelle vereinheitlicht. Jede Container-Laufzeit, die CRI unterstützt, kann als zugrunde liegende Container-Laufzeit von K8S verwendet werden.

Warum verzichtet K8S auf Docker als Container-Laufzeitumgebung und verwendet containerd?

Wenn Sie Docker als K8S-Containerlaufzeit verwenden, muss Kubelet zuerst Docker über dockershim und dann Containerd über Docker aufrufen.

Wenn Sie containerd als K8S-Containerlaufzeit verwenden, kann kubelet containerd direkt aufrufen, da containerd über ein integriertes CRI Plug-In verfügt.

Durch die Verwendung von containerd wird nicht nur die Leistung verbessert (die Aufrufkette wird kürzer), sondern auch der Ressourcenverbrauch reduziert (Docker ist keine reine Container-Laufzeitumgebung und verfügt über zahlreiche weitere Funktionen).

Verwendung von containerd

Wenn Sie Docker bereits verwendet haben, können Sie containerd in nur 5 Minuten erlernen. Als Nächstes lernen wir, wie man containerd verwendet.

  • Im vorherigen Artikel „Es hieß, dass nur High-End-Maschinen K8S ausführen können. Internetnutzer: Der Müll mit 1 GB Speicher kann es ausführen!“ 》 Wir haben K3S installiert. Da K3S standardmäßig containerd als Containerlaufzeit verwendet, können wir es verwenden, solange wir K3S installieren.
  • Tatsächlich können wir containerd betreiben, indem wir einfach den docker -Befehl, den wir zuvor verwendet haben, in den Befehl crictl ändern, um beispielsweise alle laufenden Container anzuzeigen;

crictl ps

CONTAINER IMAGE ERSTELLT STATUS NAME VERSUCH POD ID
4ca73ded41bb6 3b0b04aa3473f Vor weniger als einer Sekunde Running helm 20 21103f0058872
3bb5767a81954 296a6d5035e2d Vor etwa einer Minute Ausführen von coredns 1 af887263bd869
a5e34c24be371 0346349a1a640 Vor etwa einer Minute Läuft nginx 1 89defc6008501

Alle Bilder anzeigen;

crictl-Bilder

BILD-TAG BILD-ID GRÖSSE
docker.io/library/nginx 1.10 0346349a1a640 71,4 MB
docker.io/rancher/coredns-coredns 1.8.0 296a6d5035e2d 12,9 MB
docker.io/rancher/klipper-helm v0.4.3 3b0b04aa3473f 50,7 MB
docker.io/rancher/local-path-provisioner v0.0.14 e422121c9c5f9 13,4 MB
docker.io/rancher/metrics-server v0.3.6 9dd718864ce61 10,5 MB
docker.io/rancher/pause 3.1 da86e6ba6ca19 327kB

Rufen Sie den Container auf und führen Sie den Bash-Befehl aus. Beachten Sie, dass Sie nur die Container-ID verwenden können, nicht den Containernamen.

crictl exec -it a5e34c24be371 /bin/bash

Überprüfen Sie die Ressourcennutzung der Anwendungen im Container und Sie werden feststellen, dass sie sehr niedrig ist.

Crictl-Statistiken

CONTAINER CPU % MEM DISK INODES
3bb5767a81954 0,54 14,27 MB 254 B 14
a5e34c24be371 0,00 2,441 MB 339 B 16

Zusammenfassen

Die Konvertierung von Docker zu Containerd ist sehr einfach und weist im Grunde keine Barrieren auf. Ändern Sie einfach docker im vorherigen Docker-Befehl crictl und es ist im Grunde erledigt. Wie erwartet handelt es sich um Produkte, die von derselben Firma hergestellt werden und die Verwendung ist dieselbe. Unabhängig davon, ob K8S Docker aufgibt oder nicht, hat dies grundsätzlich keine Auswirkungen auf unsere Entwickler!

Dies ist das Ende dieses Artikels darüber, wie Sie sich in 5 Minuten von Docker verabschieden und zu Containerd wechseln können. Weitere Informationen zur Konvertierung von Docker zu Containerd finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Sprechen Sie über das Problem des Ersetzens von Docker (Shim) durch Containerd in Kubernetes1.20
  • So führen Sie den Betrieb nach dem Verlassen des Docker-Containers weiter aus
  • Docker entfernt abnormale Containervorgänge
  • Docker stellt Containern dynamisch Ports zur Verfügung
  • Löschen Sie den Image-Vorgang von „none“ in Docker-Images
  • Durchführung der lokalen Migration von Docker-Images
  • Lösen Sie das Problem verschwindender Docker-Images
  • Docker-Image kann nicht gelöscht werden. Fehler: Kein solches Image: xxxxxx-Lösung
  • So löschen Sie ein Image in Docker
  • Benennen von Containern und Images in Docker

<<:  Detaillierte Erläuterung der Probleme und Lösungen beim flexiblen Mehrspaltenlayout

>>:  Ähnlich wie HTML-Tags: strong und em, q, cite, blockquote

Artikel empfehlen

vue2.x-Konfiguration von vue.config.js zur Projektoptimierung

Inhaltsverzeichnis Vorwort vue.config.js-Konfigur...

Detaillierte Erklärung der Destrukturierungszuweisungssyntax in Javascript

Vorwort Die erstmals in ES6 eingeführte „Destruct...

mysql 5.7.11 winx64 anfängliche Passwortänderung

Laden Sie die komprimierte Version von MySQL-5.7....

Detaillierte Erläuterung der Mysql-Funktionsaufrufoptimierung

Inhaltsverzeichnis Funktionsaufrufoptimierung Fun...

Docker-Umgebung in Linux-Umgebung installieren (keine Fallstricke)

Inhaltsverzeichnis Installationsvoraussetzungen S...

Fünf Möglichkeiten zum Durchlaufen von JavaScript-Arrays

Inhaltsverzeichnis 1. for-Schleife: grundlegend u...

Detaillierte Erklärung des JavaScript ES6-Moduls

Inhaltsverzeichnis 0. Was ist ein Modul 1.Modul l...

Lösung für das img-Tag-Problem unter IE10

Finden Sie das Problem Ich habe vorher eine einfa...

Typische Fälle von MySQL-Indexfehlern

Inhaltsverzeichnis Typische Fälle Anhang: Häufige...