EinführungDie Docker-Community hat viele Open-Source-Tools entwickelt, die uns bei der Bewältigung einer Vielzahl von Anwendungsfällen unterstützen. In diesem Artikel empfiehlt der Autor fünf der nützlichsten Docker-Tools, nämlich Watchtower (automatische Aktualisierung von Docker-Containern), Docker-GC (Garbage Collection für Container und Images), Docker-Slim (Container-Verschlankung), Rocker: Durchbrechen der Einschränkungen von Dockerfile und Ctop (containerähnliche Schnittstelle der obersten Ebene). Die Docker-Community hat viele Open-Source-Tools entwickelt, die Ihnen bei mehr Anwendungsfällen helfen können, als Sie sich vorstellen können. Im Internet finden Sie viele coole Docker-Tools, die meisten davon sind Open Source und auf Github zu finden. In den letzten zwei Jahren habe ich eine große Begeisterung für Docker entwickelt und verwende es in den meisten meiner Entwicklungsprojekte. Sobald Sie Docker verwenden, werden Sie feststellen, dass es in mehr Szenarien verwendet werden kann, als Sie zunächst dachten. Sie möchten, dass Docker so viel wie möglich für Sie tut, und es wird Sie nicht im Stich lassen! Die Docker-Community ist sehr aktiv und jeden Tag erscheinen so viele nützliche Tools, dass es schwierig sein kann, mit allen Innovationen in der Community Schritt zu halten. Um Ihnen zu helfen, habe ich einige interessante und nützliche Docker-Tools zusammengestellt, die ich in meiner täglichen Arbeit verwende, die meine Arbeitseffizienz verbessern und die Arbeit reduzieren, die ich sonst manuell erledigen müsste. Watchtower (aktualisiert Docker-Container automatisch)Watchtower überwacht laufende Container und achtet auf Änderungen an den Images, von denen sie ursprünglich gestartet wurden. Wenn Watchtower erkennt, dass sich ein Image geändert hat, startet es den entsprechenden Container automatisch mit dem neuen Image neu. Ich wollte das neueste Build-Image in meiner lokalen Entwicklungsumgebung ausprobieren, also habe ich es verwendet. Watchtower selbst ist als Docker-Image gepackt, sodass Sie es wie jeden anderen Container ausführen können. Um Watchtower auszuführen, müssen Sie den folgenden Befehl ausführen: docker run -d --name watchtower --rm -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower --interval 3 Im obigen Befehl haben wir den Watchtower-Container mit einer Mount-Datei /var/run/docker.sock gestartet. Dies ist erforderlich, damit Watchtower mit der Docker-Daemon-API interagieren kann. Wir übergeben der Intervalloption Intervall 30 Sekunden. Diese Option definiert das Abfrageintervall für Watchtower. Watchtower unterstützt weitere Optionen, Sie können diese wie in der Dokumentation beschrieben verwenden. Wir starten jetzt einen Container, den Watchtower überwachen kann. docker run -p 4000:80 --name friendlyhello shekhargulati/friendlyhello:latest Jetzt beginnt Watchtower mit der sorgfältigen Überwachung des Friendlyhello-Containers. Wenn ich ein neues Image zum Docker Hub pushe, erkennt Watchtower bei nachfolgenden Ausführungen, dass ein neues Image verfügbar ist. Der Container wird ordnungsgemäß gestoppt und mit diesem neuen Image neu gestartet. Es übergibt die Optionen, die wir zuvor an den Ausführungsbefehl übergeben haben. Mit anderen Worten: Der Container wird weiterhin die veröffentlichten Ports 4000:80 verwenden. Standardmäßig fragt Watchtower das Docker Hub-Register nach aktualisierten Images ab. Watchtower kann so konfiguriert werden, dass ein privates Register abgefragt wird, indem die Registrierungsanmeldeinformationen in den Umgebungsvariablen REPO_USER und REPO_PASS übergeben werden. Um mehr über Watchtower zu erfahren, empfehle ich, die Watchtower-Dokumentation zu lesen. https://github.com/v2tec/watchtower/blob/master/README.md GitHub-Adresse: https://github.com/v2tec/watchtower docker-gc (Garbage Collection für Container und Images)Das Tool docker-gc hilft Ihnen beim Bereinigen Ihres Docker-Hosts, indem es nicht benötigte Container und Images entfernt. Es entfernt alle Container, die älter als eine Stunde sind. Darüber hinaus werden Bilder entfernt, die nicht zu den verbleibenden Containern gehören. Sie können docker-gc als Skript und als Container verwenden. Wir werden Docker-GC als Container ausführen. Um mit docker-gc alle Container und Images zu finden, die gelöscht werden können, lautet der Befehl wie folgt: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -e DRY RUN=1 spotify/docker-gc Im obigen Befehl laden wir die Datei docker.sock, damit docker-gc mit der Docker-API interagieren kann. Wir übergeben eine Umgebungsvariable DRY_RUN=1, um die Container und Bilder zu finden, die gelöscht werden. Wenn dieser Parameter nicht angegeben wird, löscht docker-gc alle Container und Images. Am besten bestätigen Sie im Voraus, was Docker-GC löschen soll. Die Ausgabe des obigen Befehls lautet wie folgt: \[2017-04-28T06:27:24\] \[INFO\] : The following container would have been removed 0c1b3b0972bb792bee508 60c35a4 bc08ba32b527d53eab173d12a15c28deb931/vibrant_ yonath\[2017-04-28T06:27:24\] \[INFO\] : The following container would have been removed 2a72d41e4b25e2782f7844e188643e395650a9ecca660e7a0dc2b7989e5acc28 /friendlyhello_ web\[2017-04-28T06:27:24\] \[INFO\] : The following image would have been removed sha256:00f017a8c2a6e1 fe2f fd05c281 f27d069d2a99323a8cd514dd35f228ba26d2ff\[busybox: latest\]\[2017-04-28T06:27:24\] \[ INFO\] : The following image would have been removed sha256 :4a323b466a5ac4ce6524 8dd970b538922c54e535700cafe9448b52a3094483ea\[hello-world:latest\]\[2017-04-28T06:27:24\] \[INFO\] : The following image would have been removed sha256:4a323b4 66a5ac4ce65248dd970b538922c54e535700cafe9448b52a3094483ea\[python:2.7-slim\] Wenn Sie mit der Bereinigungslösung von Docker-GC einverstanden sind, können Sie Docker-GC erneut ausführen, ohne DRY_RUN zum Durchführen des Bereinigungsvorgangs zu verwenden. docker run --rm -v /var/run/docker.sock:/var/run/docker.sock spotify/docker-gc docker-gc unterstützt auch einige andere Optionen. Ich empfehle Ihnen, die Docker-GC-Dokumentation für weitere Informationen zu lesen: https://github.com/spotify/docker-gc/blob/master/README.md GitHub-Adresse: https://github.com/spotify/docker-gc Docker-Slim (die magische Schlankheitspille für Container)Wenn Sie über die Größe Ihres Docker-Images besorgt sind, kann Docker-Slim Ihnen bei der Lösung des Problems helfen. Das Tool Docker-Slim verwendet statische und dynamische Analysemethoden, um Ihre aufgeblähten Bilder zu verschlanken. Um Docker-Slim zu verwenden, können Sie das binäre Installationspaket für Linux oder Mac von Github herunterladen. Fügen Sie es nach dem erfolgreichen Download Ihrer System-PATH-Variable hinzu. Zu Beispielzwecken habe ich ein Docker-Image mit dem Namen friendlyhello gemäß der offiziellen Docker-Dokumentation erstellt. Die Imagegröße beträgt 194 MB (wie unten gezeigt): Sie sehen, dass wir für eine einfache Anwendung 194 MB Daten herunterladen müssen. Lassen Sie uns Docker-Slim verwenden, um zu sehen, wie viel Fett es einsparen kann. Docker-Slim-Build – http-probe freundliches Hallo Das Tool Docker-Slim führt eine Reihe von Prüfungen und Messungen am Fat-Image durch und erstellt schließlich eine Thin-Version des Images. Schauen wir uns das Ausmaß dieses Gewichtsverlusts an. Wie Sie sehen, reduziert sich die Bildgröße auf 24,9 MB. Sie können diesen Container starten und er wird auf die gleiche Weise ausgeführt. Das Tool Docker-Slim unterstützt Java-, Python-, Ruby- und Node.js-Anwendungen. Probieren Sie es selbst aus und sehen Sie, wie viel Sie verlieren können. Ich finde, dass es in meinen persönlichen Projekten in den meisten Fällen gut funktioniert. Weitere Informationen zu Docker-Slim finden Sie in der Dokumentation: https://github.com/docker-slim/docker-slim/blob/master/README.md GitHub-Adresse: https://github.com/docker-slim/docker-slim Rocker (überwindet die Einschränkungen von Dockerfile)Die meisten Entwickler, die Docker verwenden, nutzen zum Erstellen eines Images eine Docker-Datei. Eine Docker-Datei ist eine deklarative Möglichkeit, alle Befehle zu definieren, die ein Benutzer in der Befehlszeile aufrufen kann, um ein Image zusammenzustellen. Rocker (https://github.com/grammarly/rocker) fügt dem Dockerfile-Befehlssatz neue Anweisungen hinzu. Grammarly hat Rocker entwickelt, um die aufgetretenen Probleme mit dem Dockerfile-Format zu lösen. Das Grammarly-Team hat einen ausführlichen Blog geschrieben, in dem es erklärt, warum es die Software erstellt hat. Ich empfehle Ihnen, es zu lesen, um Rocker besser zu verstehen. In ihrem Blogbeitrag haben sie zwei Probleme hervorgehoben: Die Größe des Docker-Image. Langsame Aufbaugeschwindigkeit. Das Blog erwähnt auch einige neue Befehle, die von Rocker hinzugefügt wurden. Alle von Rocker unterstützten Befehle finden Sie in der Rocker-Dokumentation: https://github.com/grammarly/rocker/blob/master/README.md MOUNT wird verwendet, um Volumes zwischen Builds freizugeben, sodass sie von Tools zur Abhängigkeitsverwaltung wiederverwendet werden können. Im Dockerfile ist bereits eine FROM-Anweisung vorhanden. Rocker ermöglicht uns, mehr als eine FROM-Anweisung hinzuzufügen. Das bedeutet, dass Sie aus einer einzigen Rockerdatei mehrere Bilder erstellen können. Der erste Befehlssatz wird zum Erstellen aller Abhängigkeiten des Produkts verwendet; der zweite Befehlssatz wird zum Erstellen des Produkts verwendet. Dadurch kann die Bildgröße erheblich reduziert werden. TAGS werden verwendet, um Bilder in verschiedenen Phasen des Builds zu identifizieren, was bedeutet, dass Sie nicht jedes Bild manuell taggen müssen. PUSH wird verwendet, um Bilder in das Bild-Repository zu übertragen. ATTACH ermöglicht Ihnen, Zwischenschritte interaktiv auszuführen. Dies ist zum Debuggen sehr nützlich. Um Rocker zu verwenden, müssen Sie es zuerst auf Ihrem Computer installieren. Für Mac-Benutzer ist es ganz einfach, indem sie ein paar Brew-Befehle ausführen: brew tap grammarly/tap$ brew install grammarly/tap/rocker Nach der Installation können Sie mit Rocker Bilder erstellen, indem Sie ihm eine Rocker-Datei übergeben: VON python:2.7-slimWORKDIR /appADD ./appRUN pip install -r requirements.txtEXPOSE 80ENV NAME WorldCMD \["python","app.Py"\]TAG shekhargulati/friendlyhello:{{ .VERSION }}PUSH shekhargulati/friendlyhello:{{ .VERSION }} Um ein Image zu erstellen und es zum Docker Hub zu übertragen, können Sie den folgenden Befehl ausführen: Rocker d Build --Push -var VERSION-1.0 GitHub-Adresse: https://github.com/grammarly/rocker ctop (containerähnliche Schnittstelle der obersten Ebene)ctop ist ein Tool, das ich seit Kurzem verwende und das eine Echtzeitansicht von Metriken über mehrere Container hinweg bietet. Wenn Sie ein Mac-Benutzer sind, können Sie es mit Brew wie folgt installieren: brew installieren ctop Sobald die Installation abgeschlossen ist, können Sie ctop verwenden. Jetzt müssen Sie nur noch die Umgebungsvariable DOCKER_HOST konfigurieren. Sie können den Befehl ctop ausführen, um den Status aller Container anzuzeigen. Wenn Sie nur laufende Container anzeigen möchten, können Sie den Befehl ctop -a verwenden. ctop ist ein einfaches Tool, das zum Verständnis der auf Ihrem Host laufenden Container nützlich ist. Weitere Informationen hierzu finden Sie in der ctop-Dokumentation: github.com/bcicen/ctop/blob/master/README.md GitHub-Adresse: https://github.com/bcicen/ctop Damit ist dieser Artikel über 5 äußerst empfehlenswerte Open-Source-Docker-Tools abgeschlossen, die äußerst nützlich sind. Weitere relevante Inhalte zu Open-Source-Docker-Tools finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: CSS erstellt Tippboxen, Bubble-Boxen und Dreiecke
>>: Beispielerklärung für langsame MySQL-Abfragen und -Protokolle
<a href = "http: //" style = "c...
Vor kurzem wollte ich Goaccess verwenden, um Ngin...
Das Thema, das ich heute mit Ihnen teilen möchte,...
In diesem Artikel wird der spezifische Code von V...
Dieser Artikel beschreibt, wie Sie Apache auf ein...
In MySQL liest die Funktion LOAD_FILE() eine Date...
MySQL-Basisdatentypen Übersicht über gängige MySQ...
Hier sind einige Möglichkeiten zum Entfernen: Füge...
Div-Grundlayout <div Klasse="Haupt"&...
Inhaltsverzeichnis 01 Gemeinsame Controller in k8...
1. Installieren Sie das Linux-System auf der virt...
Inhaltsverzeichnis 1. Verwenden Sie SVG 2. Verwen...
Dies ist der Effekt der Element-UI-Ladekomponente...
Lösung für „Curl-config konnte nicht ausgeführt w...
Was tun, wenn Sie Windows Server 2008R2 vergessen...