GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Wie verwaltet man Docker-Container? Empfohlene Vorgehensweise

Docker hat die Softwareentwicklung durch den Einsatz von Containern revolutioniert und ist heute die führende Containerplattform.

Container entfernen viele langwierige Prozesse aus der Softwareentwicklung. Maximieren Sie das Potenzial von Docker, indem Sie Best Practices implementieren, um Sicherheit, Geschwindigkeit und Effizienz zu verbessern.

In diesem Tutorial diskutieren wir Best Practices für die Verwaltung von Docker-Containern.

Was ist Docker?

Docker ist ein Open-Source-Dienstprogramm, das sich wiederholende Aufgaben in der Softwareentwicklung eliminiert.

Es ermöglicht einem Entwickler, einen Container zu erstellen, eine kontrollierte Umgebung, um einen Prozess auszuführen.

Der Container verwendet ein Image, eine Kopie einer bestimmten Betriebsumgebung. Obwohl es nach Servervirtualisierung klingt, sind Docker-Container so optimiert, dass sie einen Befehl mit minimalen Ressourcen ausführen, indem nur die erforderlichen Bibliotheken und Abhängigkeiten geladen werden.

Best Practices für die Verwaltung von Docker-Containern

Docker-Container-Effizienz mit richtiger Planung managen

Wenn Sie Ihren Softwareprozess abbilden, ist es am besten, das Containersystem so zu planen, dass Sie die Aufgaben mit dem geringsten Arbeits- und Ressourcenaufwand erfüllen.

Bevor Sie diese virtuellen Umgebungen erstellen und ausführen, überlegen Sie, wie Sie jeden Prozess einem Container zuordnen können und wie diese Container interagieren.

Außerdem sollten Sie prüfen, ob Container das beste Werkzeug für Sie sind. Obwohl Docker viele Vorteile bietet, laufen einige Anwendungen besser auf virtuellen Maschinen.

Sehen Sie sich den Unterschied zwischen Containern und VMs an und entscheiden Sie, welcher Ihren Anforderungen am besten entspricht.

Geschwindigkeit von Containern nutzen

Im Gegensatz zu einer virtuellen Maschine benötigt ein Container keine riesige Ressourcenbibliothek, um ausgeführt zu werden. Ein Container kann im Bruchteil einer Sekunde aus dem Speicher geladen, ausgeführt und entladen werden.

Um die besten Leistungsergebnisse zu erzielen, sollten Sie Ihre Docker-Images klein halten und Ihr Docker schnell erstellen. Es gibt viele Möglichkeiten, die Bildgröße zu reduzieren, z. B. die Entscheidung für eine kleinere Bildbasis, die Verwendung von mehrstufigen Builds und die Vermeidung unnötiger Ebenen.

Ebenso können Sie durch lokales Zwischenspeichern vorhandener Docker-Layer Images schneller neu erstellen und letztendlich die Geschwindigkeit Ihrer Container nutzen.

Führen Sie in jedem Container einen einzelnen Prozess aus

Die Anzahl der Container, die Sie starten und löschen können, ist unbegrenzt. Jeder kann mehrere Prozesse in seiner Umgebung ausführen.

Denken Sie daran, dass ein Container umso langsamer wird, je mehr Operationen er ausführt. Dies gilt insbesondere, wenn Sie die CPU- und Speicherauslastung eines Containers begrenzen. Die Anzahl der zum Laden erforderlichen Ressourcen hat einen starken Einfluss auf die Leistung. Es kann leicht sein, Speicher zu überschreiben, indem mehrere Aufgaben gleichzeitig ausgeführt werden. Die Verwendung eines Prozesses pro Container trägt dazu bei, diese gemeinsam genutzten Ressourcen zu begrenzen und den gesamten Container-Fußabdruck zu reduzieren.

Die Zuordnung eines einzelnen Prozesses zu jedem Container trägt dazu bei, eine saubere und schlanke Betriebsumgebung aufrechtzuerhalten.

SWARM-Dienste verwenden

Wenn Sie mehrere Container auf mehreren Hostcomputern verwalten, sollten Sie die Verwendung von Docker Swarm-Diensten, einem Container-Orchestrierungstool, in Betracht ziehen. Docker Swarm automatisiert viele Planungs- und Ressourcenverwaltungsaufgaben und hilft bei der schnellen Skalierung, wenn schnelles Wachstum ein Problem darstellt.

Eine beliebte Alternative zu Swarm ist Kubernetes, eine alternative Plattform zur Automatisierung der Anwendungsbereitstellung. Die Wahl zwischen Docker Swarm und Kubernetes hängt hauptsächlich von den Anforderungen Ihres Unternehmens ab.

Vermeiden Sie die Verwendung von Containern zum Speichern von Daten

Die Datenspeicherung erhöht die Ein-/Ausgabe (Lesen/Schreiben auf der Festplatte) eines Containers.

Ein besseres Tool für die Datenspeicherung ist ein gemeinsames Software-Repository.

Zugriff auf das Remote-Repository wird Containern auf Anfrage gewährt, wodurch die Größe des Containers reduziert wird. Es hilft auch zu verhindern, dass verschiedene Container redundante Daten laden und speichern. Schließlich kann es Engpässe verhindern, wenn mehrere Prozesse auf den Speicher zugreifen.

Suchen und behalten Sie ein funktionierendes Docker-Image

Ein Image enthält alle Konfigurationen, Abhängigkeiten und Codes, die für eine Aufgabe benötigt werden.

Es kann schwierig sein, ein Image für den gesamten Anwendungslebenszyklus zu erstellen. Sobald Sie jedoch ein Bild erstellt haben, vermeiden Sie es, es zu ändern. Es könnte verlockend sein, ein Docker-Image zu aktualisieren, wenn Abhängigkeiten aktualisiert werden. Die Änderung eines Bildes in der Mitte des Zyklus kann jedoch Chaos im Entwicklungsprozess anrichten. Dies gilt insbesondere, wenn verschiedene Teams Images mit inkompatiblen Abhängigkeiten verwenden.

Die Verwendung eines einzigen Bildes von Anfang bis Ende erleichtert die Fehlerbehebung.

Alle Teams arbeiten mit derselben Basisumgebung und verbringen weniger Zeit damit, verschiedene Codeabschnitte zusammenzubringen. Außerdem kann ein einzelnes Update in mehreren Containern abgeschlossen und getestet werden. Es reduziert die doppelte Arbeit einzelner Updates und Code-Fixes. Es hilft auch Qualitätssicherungsteams, Probleme schneller zu finden und zu beheben.

Vernetzung in Containern

Containern in Docker werden IP-Adressen zugewiesen, um miteinander zu kommunizieren. Dies kann in einer Netzwerkumgebung zu Herausforderungen führen.

In der Vergangenheit war der ––LINK Der Befehl wurde verwendet, um Adressierung und Kommunikation zu verwalten. Diese Funktion gilt als veraltet und wurde durch Bridge Networking ersetzt.

Benutzerdefinierte Bridge-Vernetzung zwischen Containern ermöglicht den Zugriff auf alle Ports innerhalb des Bridge-Netzwerks. Es blockiert auch alle Ports zur Außenwelt. Dies schafft eine sichere Umgebung für Container. Der interne Verkehr fließt ungestört und ist vor äußeren Einflüssen geschützt.

Weitere Informationen zu benutzerdefinierten Bridges (und anderen Technologien) finden Sie in der Docker-Dokumentation.

Best Practices für Docker-Sicherheit

Das Docker-Team hat viele moderne Internet-Sicherheitsprotokolle nachgerüstet. Die ursprünglichen Netzwerkentwickler haben keine Sicherheit in Netzwerkprotokolle eingebaut.

Sicherheit nachzurüsten ist immer schwierig und teuer. Eine viel bessere Praxis ist es, Sicherheit während der Entwicklung zu implementieren.

Hier sind einige Optionen, die Sie für die Verwaltung der Sicherheit von Docker-Containern in Betracht ziehen sollten .

1. Vermeiden Sie das Ausführen von Containern mit Root-Berechtigungen

Die meisten Linux-Administratoren sind mit den Gefahren vertraut, die es mit sich bringt, Benutzern volle Root-Rechte zu gewähren. Ähnliche Warnungen gelten für Container. Eine bessere Vorgehensweise besteht darin, Container nur mit den erforderlichen Berechtigungen zu erstellen.

Verwenden Sie den –u -Tag, um einen Benutzer (anstelle eines Administrators) anzugeben.

2. Sichere Anmeldedaten

Bewahren Sie Anmeldeinformationen an einem anderen Ort auf als dort, wo Sie sie verwenden. Außerdem sind Umgebungsvariablen eine bessere Möglichkeit, den Zugriff innerhalb eines Containers zu verwalten.

Das Einfügen von Anmeldeinformationen in denselben Container ist wie das Aufbewahren eines Kennworts auf einer Haftnotiz. Im schlimmsten Fall kann sich eine Verletzung in einem Container schnell auf eine ganze Anwendung ausbreiten.

3. Verwenden Sie –PRIVILEGED Taggen Sie sparsam

Standardmäßig werden Container in einem sichereren, nicht privilegierten Modus ausgeführt.

Container können nicht auf andere Geräte zugreifen. Wenn der Zugriff auf andere Geräte erforderlich ist, verwenden Sie den –privileged -Tag, um von Fall zu Fall Zugriff zu gewähren.

4. Verwenden Sie Sicherheitsanwendungen von Drittanbietern

Es ist immer eine gute Idee, ein zweites Paar Augen zu haben, um Ihre Sicherheitskonfiguration zu überprüfen. Tools von Drittanbietern nutzen die Fähigkeiten von Sicherheitsspezialisten, um Ihre Software zu analysieren. Sie können auch dabei helfen, Ihren Code auf bekannte Schwachstellen zu scannen. Außerdem enthalten sie oft eine benutzerfreundliche Oberfläche zur Verwaltung der Containersicherheit.

5. Erwägen Sie den Wechsel zu privaten Softwareregistrierungen

Docker Hub verwaltet eine kostenlose Registrierung von Software-Images, die für unerfahrene Entwickler oder kleine Entwicklungsteams, die an komplexen Projekten arbeiten, sehr hilfreich sein kann.

Bei der Verwendung dieser Registrierungen kann jedoch die Sicherheit ein Problem darstellen. Es lohnt sich, die Kosten und Vorteile des Hostings Ihrer Softwareregistrierungen abzuwägen. Wenn Sie Ressourcen praktisch verteilen und Docker-Images zwischen Containern freigeben möchten, können Sie eine private Docker-Registrierung einrichten.


No
Docker
  1. So erstellen, listen und löschen Sie Docker-Container unter Linux

  2. Überwachung von Docker-Containern:Vorteile, Best Practices und unverzichtbare Tools

  3. So teilen Sie Daten zwischen Docker-Containern

  4. So listen Sie Docker-Container auf

  5. So sichern und wiederherstellen Sie Docker-Container

So führen Sie Docker-Container aus

So entfernen Sie Docker-Container

So stoppen Sie Docker-Container

So benennen oder umbenennen Sie Docker-Container

So verwalten Sie Docker-Container

Docker-Container auflisten / starten / stoppen / löschen