Es besteht kein Zweifel, dass Container zu einem unverzichtbaren Bestandteil der IT-Infrastruktur von Unternehmen geworden sind. Sie bieten viele Vorteile, wie zum Beispiel:
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:
|
<<: Tipps zur Optimierung von MySQL SQL-Anweisungen
>>: Realisieren Sie Kartenaggregations- und Streueffekte basierend auf Vue + OpenLayer
Das img-Tag in XHTML sollte wie folgt geschrieben...
Ich möchte nur eine kleine Sache machen, die Winf...
Inhaltsverzeichnis 1. Vorlage 2. Generika 3. Gene...
In der MySQL-Dokumentation können MySQL-Variablen...
Was ist WSL Zitat aus der Baidu-Enzyklopädie: Das...
Inhaltsverzeichnis Aktualisierbare Ansichten Leis...
Ein während des Entwicklungsprozesses häufig auft...
Als ich MySQL zum ersten Mal auf meiner virtuelle...
Dieser Artikel stellt Jenkins+Maven+SVN+Tomcat üb...
Das Prinzip besteht darin, zuerst ein Div mit ein...
veranschaulichen: Mit mysqldump –all-databases we...
Inhaltsverzeichnis 1. Gespeicherte Prozedur 1.1. ...
MySQL 4.x und höher bieten Unterstützung für die ...
Inhaltsverzeichnis 1. Einleitung 2. Installation ...
Inhaltsverzeichnis Vorwort Einführung in Closures...