10 schlechte Angewohnheiten, die Sie bei Docker-Containeranwendungen vermeiden sollten

10 schlechte Angewohnheiten, die Sie bei Docker-Containeranwendungen vermeiden sollten

Es besteht kein Zweifel, dass Container zu einem unverzichtbaren Bestandteil der IT-Infrastruktur von Unternehmen geworden sind. Sie bieten viele Vorteile, wie zum Beispiel:

  • Erstens: Container sind unveränderlich – das Betriebssystem, die Bibliotheksversionen, Konfigurationen, Ordner und Anwendungen sind alle im Container verpackt. Sie garantieren, dass dasselbe Image, das Sie in der Qualitätssicherung getestet haben, mit demselben Verhalten in die Produktion gelangt.
  • Zweitens: Container sind leichtgewichtig – Container benötigen nur wenig Speicher. Der Container reserviert nur Speicher für den Hauptprozess und nicht Hunderte oder Tausende von MB.
  • Drittens: Container sind sehr schnell – Sie können einen Container genauso schnell starten, wie Sie einen typischen Linux-Prozess starten. Sie können einen neuen Container in Sekunden statt in Minuten hochfahren.

Viele Benutzer behandeln Container jedoch immer noch wie typische virtuelle Maschinen und vergessen dabei, dass Container eine wichtige Eigenschaft haben: Sie sind entbehrlich.

Diese Eigenschaft zwingt die Benutzer dazu, ihre Sichtweise hinsichtlich der Handhabung und Verwaltung von Containern zu ändern. Wie halten Sie Container in optimalem Zustand? Hier sind 10 Dinge, die Sie in Docker-Containern vermeiden sollten.

1. Speichern Sie Daten nicht in Containern

Denn Sie können den Container anhalten, zerstören oder ersetzen. Version 1.0 einer in einem Container ausgeführten Anwendung sollte problemlos durch Version 1.1 ersetzt werden können, ohne dass es zu Auswirkungen oder Datenverlust kommt. Wenn Sie Daten speichern müssen, speichern Sie sie stapelweise. In diesem Fall sollten Sie auch vorsichtig sein, wenn zwei Container Daten auf dasselbe Volume schreiben, da es sonst zu Beschädigungen kommen kann. Stellen Sie sicher, dass Ihre Anwendung zum Schreiben in den gemeinsam genutzten Datenspeicher ausgelegt ist.

2. Versenden Sie Ihre Bewerbung nicht in zwei Teilen

Manche Leute betrachten Container als virtuelle Maschinen und die meisten neigen dazu, zu denken, dass sie ihre Anwendungen in einem vorhandenen laufenden Container bereitstellen sollten. Während der Entwicklungsphase müssen Sie ständig bereitstellen und debuggen, und das ist auch richtig so. Aber für eine Continuous Delivery (CD)-Pipeline für Qualitätssicherung und Produktion sollte Ihre Anwendung Teil des Images sein.

3. Erstellen Sie keine großen Bilder

Denn große Bilder lassen sich nur schwer verteilen. Stellen Sie sicher, dass Sie nur die Dateien und Bibliotheken haben, die Sie zum Ausführen Ihrer Anwendung/Ihres Prozesses benötigen. Installieren Sie keine unnötigen Pakete und führen Sie nicht „Update“ aus, da dadurch viele Dateien in eine neue Image-Ebene heruntergeladen werden.

4. Verwenden Sie keine einschichtigen Bilder

Um ein mehrschichtiges Dateisystem effektiv zu nutzen, erstellen Sie immer Ihre eigene Basis-Image-Schicht für das Betriebssystem, eine weitere Schicht für Benutzernamendefinitionen, eine weitere Schicht für die Laufzeitinstallation, eine weitere Schicht für die Konfiguration und schließlich eine weitere Schicht für Ihre Anwendung. Es wird einfacher, Bilder neu zu erstellen, zu verwalten und zu verteilen.

5. Erstellen Sie keine Images aus laufenden Containern

Mit anderen Worten: Verwenden Sie zum Erstellen von Bildern nicht „Docker Commit“. Diese Methode der Bilderstellung ist nicht reproduzierbar und sollte vollständig vermieden werden. Verwenden Sie immer ein vollständig reproduzierbares Dockerfile oder einen anderen S2I-Ansatz (Source-to-Image). Wenn Sie Ihr Dockerfile in einem Quellcodeverwaltungs-Repository (Git) speichern, können Sie Änderungen an Ihrem Dockerfile verfolgen.

6. Verwenden Sie nicht nur das Tag „latest“

Für Maven-Benutzer ist das neueste Tag wie ein „SNAPSHOT“. Aufgrund der mehrschichtigen Dateisystemstruktur von Containern wird die Verwendung von Tags empfohlen. Es wird Sie nicht überraschen, wenn Sie einige Monate später ein Image erstellen und feststellen, dass Ihre Anwendung nicht ausgeführt wird, weil eine übergeordnete Ebene (FROM im Dockerfile) durch eine neue Version ersetzt wurde, die entweder nicht abwärtskompatibel oder fehlerhaft ist, und die „neueste“ Version aus dem Build-Cache abgerufen wurde. Sie sollten die Verwendung des Tags „latest“ auch vermeiden, wenn Sie Container in der Produktion bereitstellen, da Sie sonst den Überblick darüber verlieren, welche Version des Images Sie ausführen.

7. Führen Sie nicht mehrere Prozesse in einem einzigen Container aus.

Container eignen sich hervorragend zum Ausführen eines einzelnen Prozesses (HTTP-Daemon, Anwendungsserver, Datenbank). Wenn Sie jedoch über mehrere Prozesse verfügen, kann es bei der Verwaltung, beim Abrufen von Protokollen und beim Aktualisieren der einzelnen Prozesse zu größeren Problemen kommen.

8. Speichern Sie Anmeldeinformationen nicht in Bildern.

Verwenden Sie Umgebungsvariablen. Sie möchten in Ihrem Image keinen Benutzernamen/kein Passwort fest codieren. Verwenden Sie Umgebungsvariablen, um diese Informationen von außerhalb des Containers abzurufen. Ein gutes Beispiel für dieses Prinzip ist die Postgres-Spiegelung.

9. Führen Sie keine Prozesse als Root aus

„Standardmäßig werden Docker-Container als Root-Benutzer ausgeführt. Mit zunehmender Weiterentwicklung von Docker können sicherere Standardeinstellungen bereitgestellt werden. Derzeit ist die Anforderung des Root-Benutzers für andere gefährlich und möglicherweise nicht in allen Umgebungen verfügbar. Ihr Image sollte die USER-Direktive verwenden, um einen Nicht-Root-Benutzer für die Ausführung von Containern anzugeben.

10. Verlassen Sie sich nicht auf IP-Adressen

Jeder Container hat seine eigene interne IP-Adresse, die sich ändern kann, wenn Sie Container starten und stoppen. Wenn Ihre Anwendung oder Ihr Mikrodienst mit einem anderen Container kommunizieren muss, verwenden Sie Umgebungsvariablen, um den richtigen Hostnamen und Port von einem Container an einen anderen zu übergeben.

Oben sind die Details zu 10 schlechten Angewohnheiten bei der Anwendung von Docker-Containern aufgeführt. Weitere Informationen zur Anwendung von Docker-Containern finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Analyse des Implementierungsprozesses der Docker-Container-Orchestrierung
  • Erstellen und Verwenden von Docker-Datenvolumencontainern
  • Detaillierte Erklärung der Datenmengen von Docker-Containern
  • So generieren Sie ein Docker-Image und schließen die Containerbereitstellung in einem Spring-Boot-Projekt ab
  • So installieren Sie den Kibana-Tokenizer im Docker-Container
  • Detaillierte Erläuterung der am häufigsten verwendeten Image-Befehle und Container-Befehle von Docker
  • Detaillierte Erläuterung des Prozesses zum Erstellen und Ausführen von Docker-Containern
  • Detaillierte Erläuterung des Konfigurationsprozesses des Docker-Container-Netzwerkports

<<:  Tipps zur Optimierung von MySQL SQL-Anweisungen

>>:  Realisieren Sie Kartenaggregations- und Streueffekte basierend auf Vue + OpenLayer

Artikel empfehlen

Was Sie beim Schreiben selbstschließender XHTML-Tags beachten sollten

Das img-Tag in XHTML sollte wie folgt geschrieben...

Über Generika der C++ TpeScript-Reihe

Inhaltsverzeichnis 1. Vorlage 2. Generika 3. Gene...

MySQL-Variablenprinzipien und Anwendungsbeispiele

In der MySQL-Dokumentation können MySQL-Variablen...

So installieren und konfigurieren Sie WSL unter Windows

Was ist WSL Zitat aus der Baidu-Enzyklopädie: Das...

MySQL View-Prinzipanalyse

Inhaltsverzeichnis Aktualisierbare Ansichten Leis...

Überwachen Sie die Größenänderung eines DOM-Elements über Iframe

Ein während des Entwicklungsprozesses häufig auft...

Zusammenfassung der Probleme bei der Installation von MySQL 5.7.19 unter Linux

Als ich MySQL zum ersten Mal auf meiner virtuelle...

Beispielcode zur Eingabe des Kennzeichens und der Provinzkürzel in html

Das Prinzip besteht darin, zuerst ein Div mit ein...

Beispiel für die MySQL-Volltext-Fuzzy-Suche nach der Methode MATCH AGAINST

MySQL 4.x und höher bieten Unterstützung für die ...

Lassen Sie uns im Detail darüber sprechen, wie Browser Abschlüsse betrachten

Inhaltsverzeichnis Vorwort Einführung in Closures...