Ich habe den Quellcode des Fabric-Projekts noch einmal gelesen und festgestellt, dass es viele Dinge gibt, die ich am Docker-Teil nicht ganz verstehe. Beim Lesen sah ich, wie Docker Pull zum Abrufen des Fabric-Images und Docker Tag zum Umbenennen des Images verwendet wurden. Nach kurzem Nachdenken stellte ich fest, dass ich es zwar schon einmal verwendet hatte, es aber nicht sehr gut verstand und mich einfach durchgewurstelt hatte. Jetzt habe ich vergessen, wie man es verwendet ... 1. Docker-PullZiehen Sie das Image aus der Imagequelle, im Allgemeinen vom Docker Hub.
Zum Beispiel: $ Docker Pull Hyperledger/Fabric - $IMAGES:$FABRIC_TAG Optionen: # -a Alle Bilder mit unterschiedlichen Tags abrufen -a, --all-tags Alle mit Tags versehenen Bilder im Repository herunterladen # Bildüberprüfung ignorieren, Standardoption --disable-content-trust Bildüberprüfung überspringen (Standard: true) Probieren wir es doch mal aus. Als Betriebssystem dient das weit verbreitete Ubuntu 16.04 1.1 Normaler Zug Tatsächlich können wir die neueste Version des Bildes direkt abrufen. Standardmäßig wird das Bild mit dem Tag „latest“ abgerufen. Zum Beispiel: #Ziehen Sie das Java-Image, das Tag ist das aktuellste $ Docker Pull Java Standard-Tag verwenden: latest neueste: Aus Bibliothek/Java ziehen 5040bd298390: Ziehen abgeschlossen fce5728aad85: Pull abgeschlossen 76610ec20bf5: Ziehen abgeschlossen 60170fec2151: Ziehen abgeschlossen e98f73de8f0d: Ziehen abgeschlossen 11f7af24ed9c: Ziehen abgeschlossen 49e2d6393f32: Ziehen abgeschlossen bb9cdec9c7f3: Ziehen abgeschlossen Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d Status: Neueres Image für Java heruntergeladen:latest Nachdem der Pull abgeschlossen ist, können wir das Bild anzeigen, das wir bereits haben $ Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE java latest d23bdf5b1b1b vor 20 Monaten 643MB 1.2 Tag-Namen ziehen Aus der obigen Ausgabe können wir erkennen, dass, obwohl nur ein Java-Image abgerufen wird, während des Pull-Prozesses mehrere Pull-Abschlüsse auftreten, darunter 5040bd298390 und fce5728aad85. Dies liegt daran, dass ein Image aus mehreren „Ebenen“ bestehen kann und diese „Ebenen“ von anderen Images (ähnlich wie Front-End-Komponenten oder Module) wiederverwendet werden können, um ein neues Image zu erstellen. Wenn Sie ein anderes Image abrufen, von dem einige bereits heruntergeladen wurden, ruft Docker Pull nur die Metadaten ab, ohne die Ebenen erneut abzurufen. Die Image-Bibliothek von Docker verwendet inhaltsadressierten Speicher und die Image-ID ist ein SHA256-Digest, der die darin enthaltene Konfiguration und die „Ebenen“ darstellt. Lassen Sie uns das beweisen. Da ich java:latest gezogen habe, ein Image mit dem Tag-Namen latest, muss ich ein Image mit derselben Version wie latest, aber einem anderen Tag-Namen finden (im Wesentlichen dasselbe Image, aber mit einem anderen Tag-Namen). Die folgenden Ergebnisse wurden auf Docker Hub gefunden: Ziehen Sie das Image mit dem Tag-Namen 8-jdk: $ docker pull java:8-jdk 8-jdk: Aus Bibliothek/Java ziehen Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d Status: Neueres Image für java:8-jdk heruntergeladen Offensichtlich sieht der Pull hier die „Layer“-Informationen nicht, und der SHA256-Wert der Zusammenfassung ist genau derselbe wie beim Bild mit dem Tag-Namen latest. Im Wesentlichen sind dies zwei genau dieselben Bilder, die aus denselben „Layern“ bestehen, sodass sie nicht erneut abgerufen werden müssen. An dieser Stelle stellen Sie sich vielleicht die gleiche Frage wie ich: „Genau das Gleiche?“ Bedeutet das, dass es in der Betriebsumgebung nur einen davon gibt? Wessen Tag-Name sollte also verwendet werden? Schauen wir uns die folgende Ausgabe an: $ Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE java 8-jdk d23bdf5b1b1b vor 20 Monaten 643 MB java latest d23bdf5b1b1b vor 20 Monaten 643MB Wir können deutlich erkennen, dass beim Anzeigen aller Bilder Bilder mit den Tag-Namen „8-jdk“ und „latest“ aufgelistet sind. „java:8-jdk“ und „java:latest“ haben dieselbe Bild-ID, da es sich im Wesentlichen um dasselbe Bild handelt, das nur mit unterschiedlichen Tags markiert ist. Da die Images exakt gleich sind, werden ihre „Ebenen“ nur einmal gespeichert und verbrauchen keinen zusätzlichen Speicherplatz. Das heißt, es gibt in der Betriebsumgebung nur ein Java-Image und das Image kann auch mit unterschiedlichen Tags gekennzeichnet werden. Weitere Informationen zu Images, „Layern“ und inhaltsadressierten Repositories finden Sie in der neuen, noch nicht geöffneten Grube. Detaillierte Analyse von Docker-Images, „Layern“ und Speichertreibern 1.3 Zusammenfassung Pull Durch die beiden oben genannten Möglichkeiten zum Abrufen von Bildern erhalten wir einen sha256
Versuchen wir zusammenzufassen, wie das Bild abgerufen wird: $ docker pull java@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d: Aus Bibliothek/Java ziehen Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d Status: Bild ist aktuell für java@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d Das Bild dieser Zusammenfassung ist bereits aktuell und muss nicht gezogen werden. $ Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE java 8-jdk d23bdf5b1b1b vor 20 Monaten 643 MB java latest d23bdf5b1b1b vor 20 Monaten 643MB Die Spiegelliste bleibt unverändert. Hier ist ein Wissenspunkt, der besagt, dass die Zusammenfassung mit FROM in Dockerfile verwendet werden kann:
Diese Referenzmethode fixiert das Bild aufgrund der spezifischen Zusammenfassung auf eine bestimmte Version und wird nicht aktualisiert. Wenn Sie eine andere Version verwenden müssen, müssen Sie den Inhalt der Zusammenfassung ändern. 1.4 Aus anderen Registern ziehen Um es noch einmal zu wiederholen: Docker Pull zieht standardmäßig Bilder vom Docker Hub. Natürlich können wir das Abrufen von Bildern aus anderen Registern einrichten:
Bitte beachten Sie, dass Sie vor der URL des Registrierungscenters kein http:// oder https:// hinzufügen müssen. 1.5 Mehrere Bilder gleichzeitig aus derselben Bildbibliothek abrufen Verwenden Sie docker pull -a, um alle Bilder in derselben Bildbibliothek abzurufen. 1.6 Pull abbrechen Um die Pull-Aktion abzubrechen, können Sie den Pull-Prozess durch Drücken von STRG+C direkt in der Bedienoberfläche beenden. 2. Docker-TagErstellen Sie ein neues Tag für das Quellbild
Der Image-Name besteht aus den einzelnen Namenskomponenten, die durch einen Schrägstrich getrennt sind, z. B. „library/java“. Trennen Sie Name und Tag durch einen Doppelpunkt, zum Beispiel „library/java:8-jdk“. Wir können auch einige Präfixe vor dem Bildnamen hinzufügen, um anzuzeigen, dass die Bildquelle andere Register oder private Register sind, wie zum Beispiel
2.1 Kennzeichnen Sie das mit Name referenzierte Bild
Leser können versuchen, die Unterschiede und Ähnlichkeiten zwischen Docker-Tag Java java:byname und Docker-Tag Java lib/java:byname zu erkennen. 2.2 Kennzeichnen Sie das Bild mit der ID
2.3 Kennzeichnen Sie das mit Name und Tag referenzierte Bild
2.4 Bilder in privaten Registern taggen Um das Bild in ein privates Register hochzuladen, müssen Sie das Bild umbenennen. Die Regeln sind:
Docker pull und Docker tag sind häufig verwendete Befehle. Sie sind einfach zu verwenden, haben aber viele Tricks. Leser können sie selbst üben und ausprobieren. Nachtrag Tatsächlich habe ich schon lange mit Docker zu tun. Wie sind Sie auf die Idee gekommen, diesen Teil zu schreiben? Meine ursprüngliche Absicht beim Schreiben war es, Wissen anzuhäufen. Meine Vorgesetzten haben von mir immer verlangt, dass ich schnell Technologie anwende und Werte schaffe. Daher kenne ich vielleicht nicht die wahre Bedeutung theoretischer Forschung, zugrunde liegender Prinzipien und sogar grundlegender Befehle, aber ich kann sie nur anwenden und weiß, wie man sie anwendet. Genauso wie eine Fahrschule ihren Schülern zwar das Fahren beibringt (oder auch nicht), ihnen aber nie den Aufbau (die Architektur) und die Funktionsweise (die zugrunde liegenden Prinzipien) des Autos beibringt. Wenn Sie mit Ihren Händen den Gang wechseln und das Lenkrad drehen können und mit Ihren Füßen die Kupplung, das Gaspedal und die Bremse betätigen können, reicht das dann nicht? Sie können Auto fahren. Warum also Sedimentation? Erstens: Wenn Sie jemand nach Geboten oder Grundsätzen fragt, zögern Sie und sind nicht in der Lage zu antworten, weil Sie die Anweisungen nur mit der Muskulatur Ihrer Fingerspitzen auswendig gelernt haben, von den Grundsätzen oder zugrunde liegenden Prinzipien ganz zu schweigen. Zweitens habe ich durch Analogie aus anderen Erfahrungen gelernt. Von einem Front-End-Neuling am Anfang über die Verwendung der Spring Boot-Architektur zum Schreiben von Java-Anwendungen bis hin zum Erlernen der Verwendung von Linux-Befehlen (Shell), Docker und Go zum Anwenden des Blockchain-Frameworks HyperLedger Fabric für die Produktion scheint es ein großer Sprung zu sein, aber es ist immer noch dasselbe Feld, nämlich die Kommunikation zwischen Menschen und Maschinen. Ich habe gelernt, verschiedene Sprachen zu verwenden, um mit Maschinen zu kommunizieren, die verschiedene Maschinensprachen sprechen. Ich war wie ein Ausländer, der in einem Maschinenland lebt und lesen und schreiben kann. Auf dem Weg der Praxis in der Maschinenwelt entferne ich mich allmählich von meiner anfänglichen Aufklärung über HTML, CSS und JavaScript. Es ist der Vorabend des Nationalfeiertags, also werde ich es vorerst hier schreiben. Ich fühle mich wie ein Bohnenspross, der zu viel Wasser aufnimmt und nicht genug Sonnenlicht bekommt. Er wächst immer höher, aber je höher er wächst, desto dünner wird er. Die Wurzeln sind nicht üppig genug, der Hals ist nicht stark genug und es besteht eine größere Wahrscheinlichkeit, dass er sich verbiegt und bricht. Wir sollten uns immer motivieren, an unseren ursprünglichen Zielen festhalten, unsere Pflichten nie vergessen, mehr nährstoffliche Inhalte von vorne aufnehmen und uns stärken. Der obige Artikel Docker Pull Image und Tag-Operation Pull | Tag ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen. Das könnte Sie auch interessieren:
|
<<: js implementiert das Ein- und Ausblenden von Inhalten mit der Maus über die Karte
>>: HTML-Auszeichnungssprache - Formular
sort Den Inhalt einer Textdatei sortieren Verwend...
In diesem Artikel wird der spezifische Code von j...
Rendern Definieren Sie das Skelett, schreiben Sie...
Da die Anzahl der Besuche auf der Website des Unt...
So überprüfen Sie den Dateisystemtyp einer Partit...
CSS-Stilspezifikationen 1. Klassenauswahl 2. Tag-...
Inhaltsverzeichnis URL-Modul 1.Parse-Methode 2. F...
Inhaltsverzeichnis 1. Benutzerdefiniertes Routing...
Inhaltsverzeichnis Funktionsaufrufoptimierung Fun...
Dieser Artikel beschreibt anhand eines Beispiels ...
1. Download, ich nehme 8.0 als Beispiel Download-...
Inhaltsverzeichnis Überblick 1. Funktion Entprell...
Im Allgemeinen ist es unwahrscheinlich, dass Sie ...
Bei täglichen Betriebs- und Wartungsarbeiten werd...
Inhaltsverzeichnis 1. Aufgetretene Probleme 2. An...