Verwenden Sie dieses Tool, um die Größe Ihrer Docker-Images zu reduzieren und die Leistung zu verbessern

Index
  1. SlimToolkit vereinfacht die Optimierung von Docker-Images
  2. Reduzierung der Docker-Image-Größe mit SlimToolkit
  3. Vergleich Größendifferenz: Original vs. schlankes Image
  4. Einschränkungen, die zu beachten sind
  5. Zusammenfassung

SlimToolkit optimiert Docker-Images effizient, indem es unnötige Dateien entfernt, ohne den Anwendungscode zu ändern. Der Prozess verbessert Sicherheit und Ressourcennutzung in CI/CD-Pipelines.

Ich habe früher viel Zeit damit verbracht, große Docker-Images zu optimieren, auf den Abschluss von Builds zu warten und mir über verschwendeten Speicher Sorgen zu machen. Es schien, als ob die Images immer schwerer wurden, egal wie sorgfältig ich meine Dockerfiles strukturiert habe. Das änderte sich, als ich SlimToolkit (ehemals bekannt als DockerSlim) entdeckte.

Dieses Tool analysiert ein Docker-Image, identifiziert, welche Dateien und Abhängigkeiten zur Laufzeit tatsächlich benötigt werden, und entfernt alles andere. Folgen Sie diesem Leitfaden, um zu sehen, wie SlimToolkit funktioniert und welche Schritte ich unternommen habe, um meine Docker-Images zu verkleinern, ohne etwas zu brechen.

SlimToolkit vereinfacht die Optimierung von Docker-Images

SlimToolkit ist ein Open-Source-Tool, das die Größe von Docker-Images reduziert, ohne Änderungen am Anwendungscode oder den Dockerfiles vorzunehmen. Es beseitigt die Notwendigkeit manueller Optimierungsschritte, wie das Bereinigen von Paketen oder das Neuschreiben von Build-Phasen. Stattdessen übernimmt SlimToolkit die Bildoptimierung automatisch und hält den Prozess einfach.

Wenn Sie SlimToolkit auf einem Docker-Image ausführen, führt es eine dynamische Analyse durch, indem es beobachtet, wie der Container läuft. Es verfolgt genau, welche Dateien, Bibliotheken und Abhängigkeiten die Anwendung während der Ausführung verwendet. Basierend auf diesen Daten erstellt es ein neues, optimiertes Image, das nur die erforderlichen Komponenten enthält. Das ursprüngliche Image bleibt unverändert, was den Prozess sicher und einfach umkehrbar macht.

SlimToolkit funktioniert mit bestehenden Images und unterstützt Node.js, Python, Java und Go, ohne dass fortgeschrittene Docker- oder Linux-Kenntnisse erforderlich sind. Es integriert sich nahtlos in die meisten Workflows und verbessert die Sicherheit von Containern, indem es nicht verwendete Werkzeuge und Shells entfernt, die von Angreifern ausgenutzt werden könnten. Kleinere Images werden schneller heruntergeladen, schneller gestartet und verbrauchen weniger Ressourcen, was ein großer Vorteil für CI/CD-Pipelines ist.

Die Verwendung von SlimToolkit über Docker ist die einfachste Methode, da keine lokale Installation erforderlich ist. Solange Docker installiert und aktiv ist, können Sie SlimToolkit sofort verwenden.

Zuerst laden Sie das offizielle SlimToolkit-Image mit dem folgenden Docker-Befehl herunter:

docker pull dslim/slim

Um SlimToolkit auszuführen, muss der Docker-Socket (/var/run/docker.sock) gemountet werden. Dadurch erhält der Container die Berechtigung, mit Ihrer lokalen Docker-Engine zu kommunizieren, um Images zu analysieren und zu optimieren. Stellen Sie sicher, dass Sie nur vertrauenswürdige offizielle Images verwenden.

Reduzierung der Docker-Image-Größe mit SlimToolkit

Um den Optimierungsprozess zu demonstrieren, werden wir ein Standard-Nginx-Image schlanker machen. Zuerst ziehen Sie das offizielle, neueste Nginx-Image:

docker pull nginx:latest

Für Standardanwendungen wie Nginx können Sie den Build-Befehl direkt ausführen. SlimToolkit prüft, welche Dateien der Container tatsächlich verwendet und entfernt die unnötigen.

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build --target nginx:latest --tag nginx-slim:latest

Einige Programmiersprachen (wie Python oder Ruby) haben eventuell Abhängigkeiten, die nicht sofort während einer Standardprobe aktiviert werden. In diesen Fällen erstellen Sie eine „ignore.txt“-Datei, um SlimToolkit mitzuteilen, welche Ordner beibehalten werden sollen, wie „/usr/local/lib/python3.11“. Dies verhindert, dass SlimToolkit essentielle Laufzeitabhängigkeiten entfernt.

Sie können den Befehl mit einem Volume-Mount ausführen, um Ihre Erhaltungsregeln einzubeziehen:

-v "$(pwd)":/target --preserve-path-file /target/ignore.txt

Vergleich Größendifferenz: Original vs. schlankes Image

Sobald der Prozess abgeschlossen ist, speichert SlimToolkit das optimierte Image lokal. Sie können die Größendifferenz zwischen dem originalen und der schlanken Version mit folgendem Befehl vergleichen:

docker images

Sie werden wahrscheinlich eine dramatische Reduzierung feststellen.

Testen Sie abschließend Ihr neues optimiertes Image, um sicherzustellen, dass es wie erwartet funktioniert:

docker run -it -p 8080:80 nginx-slim:latest

Öffnen Sie Ihren Browser und navigieren Sie zu http://localhost:8080. Sie sollten die standardmäßige Nginx-Startseite sehen, jedoch von einem erheblich kleineren Container-Footprint betrieben.

SlimToolkit bietet einige wichtige Befehle, um Ihnen zu helfen, Docker-Images zu analysieren und zu optimieren. Hier ist eine Liste der.

nützlichsten Befehle:

BefehlBeschreibung
slim buildOptimiert ein Docker-Image, indem nur die notwendigen Dateien und Abhängigkeiten beibehalten werden, was die Bildgröße reduziert.
slim xrayAnalysiert ein Docker-Image und zeigt dessen Inhalte, einschließlich Dateien, Ebenen und Abhängigkeiten.
slim lintÜberprüft Dockerfiles auf Fehler, um Probleme beim Erstellen zu verhindern.
slim debugErlaubt das Debuggen eines laufenden Containers, der aus einem schlankeren Docker-Image erstellt wurde.
slim profileSammelt Informationen über ein Docker-Image und gibt einen JSON-Bericht zur Größen- und Leistungsanalyse aus.
slim mergeFügt zwei Docker-Images zu einem einzigen Image zusammen.

Sie können auch alle verfügbaren SlimToolkit-Befehle und deren Verwendung mit dem folgenden Befehl überprüfen.

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim slim help

Einschränkungen, die zu beachten sind

Während SlimToolkit hilft, die Größen von Docker-Images zu reduzieren, sollten Sie einige Nachteile berücksichtigen:

  • Das Verkleinern großer Images kann länger dauern, also planen Sie entsprechend.
  • Da das Tool dynamische Analysen verwendet, könnte SlimToolkit eine Abhängigkeit als ungenutzt betrachten und löschen, wenn ein bestimmter Codepfad während des Erstellungsprozesses nicht ausgeführt wird. Testen Sie Ihre geschlankten Images immer gründlich.
  • Es entfernt oft Tools wie bash oder curl, um Speicherplatz zu sparen. Wenn Sie diese zur Fehlersuche in einem Produktionscontainer benötigen, müssen Sie SlimToolkit ausdrücklich anweisen, sie beizubehalten.

Zusammenfassung

Die Integration von SlimToolkit in Ihren Workflow beschleunigt die Bereitstellungen, sorgt für konsistente Leistung und minimiert die Containergröße. Es hilft Ihnen, sauberere und professionellere Docker-Images zu erstellen, während Ihre ursprünglichen Builds unverändert bleiben. Darüber hinaus trägt die Anwendung der besten Docker-Reinigungspraktiken zur Beibehaltung effizienter und gut organisierter Container über die Zeit bei.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Go up