‫Zu den Voraussetzungen für diese Vorlesung gehört, dass Sie die Grundlagen zu einem
‫Container und einem Bild in Docker kennen und
‫die Ebenen oder zumindest die Grundlagen von Ebenen verstehen. Wissen Sie ein paar Dinge über Docker Hub.
‫In dieser Vorlesung geht es um Image-Tags und wie man sie in Docker Hub hochlädt.
‫Tags haben tatsächlich eine Menge zu bieten, da sie nicht so intuitiv sind, wie Sie vielleicht
‫denken, wenn Sie sie zum ersten Mal verwenden. Sie müssen tatsächlich in einem bestimmten Format vorliegen, um mit einer
‫Registrierung, insbesondere mit Docker Hub, arbeiten zu können. Dann werde ich mit Ihnen über die Beziehung zwischen
‫den Tags, die Ihren Bildern zugewiesen sind, und den IDs dieser Bilder sprechen.
‫Also lasst uns anfangen.
‫Lassen Sie uns zuerst über das Markieren sprechen. Docker-Image-Tag --Hilfe. Bilder haben technisch gesehen keinen Namen, obwohl wir uns auf
‫diese Art beziehen, wenn wir beiläufig sprechen.
‫Wenn wir ein
‫Docker-Image erstellen, werden Sie feststellen, dass es keine Namensspalte gibt.
‫Außer der Bild-ID wird sich keiner von uns an diese erinnern, oder?
‫Wir müssen mit drei verschiedenen Informationen auf sie verweisen.
‫Auf diesem Bildschirm für den Befehl image ls sehen wir nur zwei von ihnen. Links sehen wir
‫das Repository
‫und dann das Tag. Das Repository besteht tatsächlich entweder aus dem
‫Benutzernamen oder dem Schrägstrich der Organisation für das Repository.
‫Da es sich hier nur um offizielle Repository-Images
‫handelt, wird nur der tatsächliche Repository-Name angezeigt.
‫Wir haben bereits erwähnt, dass die als offiziell geltenden speziellen Images die einzigen sind, die das
‫Recht haben, nur den Namen des Repositorys und nicht den tatsächlichen Namen des Slash-Repositorys der Organisation
‫zu erhalten.
‫Wenn wir aber zu Docker Hub übergehen und nur nach MySQL suchen, werden wir feststellen, dass es tatsächlich
‫eine Organisation gibt, nicht nur die offizielle MySQL, die nur als MySQL bezeichnet
‫wird, sondern auch die SQL-Organisation mit ein mysql-server, der ziemlich beliebt zu sein scheint, da
‫er über eine million downloads hat. Es sieht so aus, als ob es sich
‫hier um denselben MySQL-Server handelt, der jedoch vom MySQL-Team bei Oracle erstellt wurde.
‫Wenn ich es eigentlich herunterladen wollte, werden Sie hier auf
‫der rechten Seite feststellen, dass ich einen Docker-Pull für MySQL / MySQL-Server ausführen muss. Ich kann tatsächlich auf die
‫Schaltfläche "Kopieren" klicken und ich kopiere dies in. Es wird tatsächlich dieses eindeutige organisationsbasierte Image heruntergeladen. Wenn
‫ich ein Docker-Image erneut durchführe, werden Sie feststellen, dass der Repository-Name den Organisationsnamen enthält.
‫In meinem Konto bei Docker Hub bin ich als Bretfisher bekannt. Sie können es von oben rechts sehen.
‫Wenn ich also auf mein Dashboard und auf meine Bilder schaue, die ich öffentlich habe,
‫schauen wir uns zum Beispiel die Nodemongoapp an.
‫Wenn Sie dies herunterladen
‫würden, müsste ich Docker Pull Bretfisher / Nodemongoapp tun.
‫Nachdem wir nun verstanden haben, wie das Repository heißt, wofür dient das Tag?
‫Das Tag ist nicht ganz eine Version und auch kein Zweig, aber es ist Git-Tags sehr ähnlich.
‫Es ist also ein bisschen von beidem.
‫Es ist wirklich nur ein Zeiger auf ein bestimmtes Image-Commit und kann wirklich alles sein, was sich in diesem Repository befindet.
‫Wenn wir für eine Minute zu Docker Hub zurückgekehrt sind und das offizielle MySQL-Image aufgerufen haben, sehen Sie auf der Titelseite, dass
‫es diese verschiedenen Tags hat. Was sie hier sagen wollen, ist, dass die 8. 0. 0
‫und die 8. 0 und 8 sind alle Tags für dieselbe Bild-ID.
‫Wenn ich hier nach oben scrolle und auf die Schaltfläche "Tags" schaue, erhalte ich eine vollständige detaillierte Liste aller verschiedenen Tags,
‫die sie dem MySQL gegeben haben.
‫Also lasst uns zu Nginx gehen, woran wir viel gearbeitet haben.
‫Wir werden hier sehen, dass es nicht nur Zahlen sind, sondern auch Namen.
‫Es ist wichtig darauf hinzuweisen, dass dies tatsächlich alle dasselbe Bild sind und
‫Docker schlau genug ist, dies zu wissen. Ich gehe zu meiner Befehlszeile und sehe, dass ich bereits die neueste Version von Nginx heruntergeladen habe.
‫Wenn ich mir die Webseite anschaue, sehe ich das neueste Tag hier, aber es heißt auch mainline.
‫Was wäre, wenn ich einen Docker am nginx: mainline ziehen würde? Dies sagt uns, dass es tatsächlich bereits bekannt ist, dass sich dieses Bild
‫aufgrund der Bild-ID bereits in meinem Cache befindet. Wenn ich jetzt wieder ein
‫Docker-Image mache, sehe ich zwei verschiedene Nginx. Sie werden feststellen, dass sie genau dieselbe Bild-ID haben, da sie nicht wirklich zweimal im Cache gespeichert
‫sind, und dies geht wiederum auf einen Großteil der Einsparungen zurück. Diese Tags sind nur Bezeichnungen,
‫die auf eine tatsächliche Bild-ID verweisen, und wir können viele von ihnen alle auf dieselbe zeigen
‫lassen.
‫Wie mache ich neue Labels?
‫Nun, ich könnte mein eigenes Dockerfile erstellen und mein eigenes benutzerdefiniertes Image erstellen, aber
‫wir können auch vorhandene Docker-Images neu markieren, sodass ich nur ein Docker-Image-Tag
‫für nginx bretfisher / nginx erstellen kann. Das Format dieses Befehls ist das Bild, dem ich zuerst ein neues
‫Tag geben werde, und dann das neue Tag, das ich ihm geben möchte.
‫Wenn ich ein Docker-Image-Tag --help erstellt habe, nur um Ihren Speicher zu aktualisieren, werden SOURCE_IMAGE und
‫ein optionales
‫Tag und dann NEW_IMAGE ein optionales Tag angezeigt.
‫Wenn Sie also kein Tag angeben, wird standardmäßig immer das neueste verwendet. Das Neueste bedeutet eigentlich nicht immer das Neueste, da ich
‫technisch gesehen eine alte Software nehmen und sie mit dem neuesten Tag versehen könnte.
‫Es gibt nichts Besonderes, aber es ist nur eine Art Standard. Wirklich, ich wünschte, sie würden
‫es nur als Standard und nicht als aktuell bezeichnen.
‫Es ist also
‫etwas verwirrend, aber in Docker Hub können Sie im Allgemeinen darauf vertrauen, dass es sich bei
‫der neuesten Version im Allgemeinen um die neueste stabile Version der Software handelt, die Sie verwenden möchten.
‫Machen wir also noch
‫einmal ein Docker-Image. Beachten Sie, was passiert ist.
‫Ich habe einem vorhandenen Bild, das ich nicht erstellt habe, ein neues Tag hinzugefügt.
‫Es zeigt dieselbe Image-ID und
‫ist jetzt mit meinem Benutzernamen und einem neuen Repo versehen, das es in Docker Hub noch nicht gibt.
‫Wenn wir auf mein Armaturenbrett
‫schauen, habe ich nichts mit dem Namen Bretfisher / Nginx.
‫Was wäre, wenn ich ein Docker-Image-Push ausführen würde, ähnlich wie ein Git-Push, bretfisher / nginx?
‫verweigert: Der angeforderte Zugriff auf die Ressource wird verweigert.
‫Es wurde also eindeutig versucht, das, was ich gerade erstellt habe, hochzuladen. Es wurde versucht, dieses Tag hochzuladen, aber mir wurde der
‫Zugriff verweigert.
‫Das liegt daran, dass ich mich nicht angemeldet habe.
‫Wenn Sie sich die Docker-Hilfe ansehen, sehen Sie einen An- und Abmeldebefehl. Wir haben diese noch nicht benutzt.
‫Sobald Sie ein eigenes kostenloses Docker Hub-Konto haben, können Sie sich über die Docker-Befehlszeile anmelden.
‫Also, was dies tatsächlich tat, war, dass dies in eine Datei geschrieben wurde, die sich standardmäßig in meinem Profil unter cat befindet. Docker / Konfig. json, und es wurde
‫tatsächlich ein Authentifizierungsschlüssel gespeichert, mit dem meine lokale Docker-CLI als ich auf Docker Hub zugreifen
‫kann.
‫Dies ist ein wichtiger Punkt, den wir später in der Produktion kennenlernen
‫werden. Wenn Sie sich mit der Docker-CLI anmelden, wird dieser Authentifizierungsschlüssel für Ihr Konto standardmäßig im
‫Profil dieses Benutzers gespeichert.
‫Also sei dir dessen einfach bewusst.
‫Wenn Sie einen Computer verwenden, dem Sie nicht vertrauen, geben Sie nach Abschluss des Vorgangs einfach docker logout ein.
‫Nachdem wir angemeldet sind, drücke ich auf den Aufwärtspfeil, um das Bild erneut zu verschieben.
‫OKAY.
‫Es scheint also so, als wäre es geschafft.
‫Gehen wir zu Docker Hub und klicken Sie auf Aktualisieren. Da ist
‫es, Bretfisher / Nginx. Auch hier musste ich das nicht von Grund auf neu erstellen, um es hochzuladen.
‫Ich habe einfach ein vorhandenes Bild mit einem neuen Tag versehen, und als ich es hochgeladen habe, hat es automatisch
‫ein neues Repo erstellt, das auf diesem Tag basiert.
‫Natürlich könnte ich alle Informationen hier ausfüllen, und Sie werden sehen, dass standardmäßig der
‫neueste Tag-Name verwendet wird, da ich keinen angegeben habe. Also könnte ich zurückgehen und den Pfeil nach oben
‫machen, bis ich zu meinem Tag komme und ich könnte ihm tatsächlich einen anderen Tag geben.
‫Wir werden dem gleichen Bild ein zusätzliches Tag hinzufügen und das Testen nennen. Wenn wir ein Docker-Image erstellen,
‫werden
‫Sie feststellen, dass ich jetzt drei mit derselben Image-ID habe.
‫Wenn ich ein Docker-Image mit Push-Bretfisher / Nginx: testing erstellt habe und diesmal das Testen angegeben habe, wird darauf
‫hingewiesen, dass bereits Ebenen vorhanden sind.
‫Das ist Teil unserer tollen Sparquote.
‫Wenn wir Bilder herunterladen und hochladen, gibt es bereits vorhandene Ebenen, und es macht keinen Unterschied, sie
‫erneut hochzuladen.
‫Wenn wir zurückgehen und ich auf "Aktualisieren" drücke, werden Sie feststellen, dass ich jetzt ein anderes Tag habe.
‫Aber natürlich, wenn ich gerade ein Docker-Image erstellt habe, sehen wir, als ob wir gesehen hätten, dass es die gleiche
‫Image-ID ist und beide Seiten dieser Verbindung es wissen. Wenn dies ein privates Repository sein soll, da dies
‫eine unterstützte Funktion von Docker Hub ist, möchte ich das Repository wahrscheinlich zuerst erstellen. Als ich es
‫erstellte, habe ich festgelegt, dass es privat ist.
‫Dann, wenn ich darauf drückte, würde der Code nie öffentlich im Internet sein.
‫Wow, es gibt viel zu Bildern und ihren Tags.
‫Machen wir also einfach einen kurzen Rückblick.
‫Wie Sie sehen, können Sie so ziemlich alles mit Tags versehen, aber sie müssen in einem bestimmten Format
‫vorliegen, damit Sie mit Docker Hub arbeiten können. Sie können nicht einfach etwas Nginx aufrufen und
‫dann hochladen, da es nur funktioniert, wenn Ihre Konto-ID oder Organisations-ID im Vordergrund steht.
‫Dann sprach ich darüber, wie Sie tatsächlich viele Tags für dieselbe Bild-ID haben können und
‫nur, weil Sie ein vorhandenes Bild neu taggen oder anders taggen, ändert es diese Bild-ID nicht wirklich.
‫Denken Sie daran, dass das neueste Tag nur das Standardtag ist.
‫Es ist an sich nichts Besonderes dabei, aber wir gehen davon aus, dass Docker
‫Hub so ziemlich den Standard darstellt, dass Benutzer das neueste Tag verwenden, um die neueste
‫stabile Version ihres Images anzugeben. Ich habe Ihnen gezeigt, wie Sie sich schnell über die CLI von Docker Hub aus anmelden können. Denken Sie daran, dass in Ihrer lokalen
‫Konfiguration eine Sitzungs-ID gespeichert wird, wenn Sie sich auf einem Linux-Computer befinden, und dass Sie sich abmelden, um diese zu
‫entfernen, wenn Sie sich auf einem
‫gemeinsam genutzten Linux-Computer oder einem Host wie einem Server befinden. Zur Erinnerung: Wenn Sie ein privates Docker
‫Hub-Image erstellen möchten, sollten Sie das Repository wahrscheinlich zuerst erstellen, bevor Sie es hochladen.