Wie Docker-Tags Arbeiten?

0
23

Docker-images verwenden Register für die Versionskontrolle, wie der Docker-Hub, finden öffentliche Bilder für jedermann zum herunterladen und ausführen. Jedoch, vor dem hochladen eines Bildes an den Hub oder keine Registrierung, müssen Sie ihm die richtigen tags.

Container vs. Bild

Es ist wichtig zu verstehen den Unterschied zwischen Containern und images vor dem Gespräch über tags, wie Sie sind oft verwendet, ziemlich austauschbar, und das kann zu Verwirrung führen.

Ein Docker image ist, was Sie Ausführung von docker-build mit Ihren Dockerfile. Es ist aus mehreren Schichten zu optimieren, Datenträger-und Arbeitsspeicher-Auslastung. Ein Bild ist ein nur-lese -.

Ein Docker-container ist eine Instanz des Bildes, die die Prozesse tatsächlich ausgeführt werden. Es ist eine read/write-Dateisystem, also im Grunde genommen ein Bild, eine Vorlage, die Sie verwenden, um erstellen Sie mehrere Container aus. Es enthält den Basis-code, und alles, was die app braucht, um loszulegen. Die Container bekommen, initialisiert mit dem Bild, wenn erstellt, dann kann es ändern Sie die Datei-system, wie Sie bitte.

Bilder sind, was Sie drücken Sie, um die container-Registrierung. Dann, auf Ihrem Server, können Sie die Referenz Bild in der Registrierung zum download der container.

Tags Track-Versionen Gebaut Bilder

Wenn Sie führen Sie ein Andockfenster zu bauen, erstellen Sie ein neues Bild mit einer eindeutigen ID, wie “38054d5e8a27.”

Tags sind einfach nur Etiketten, die eine bessere Möglichkeit zur Verwaltung der Versionskontrolle und-releases. Sie sind wie Etiketten, die Sie zuweisen können, um fertig zu bauen. Statt verweisen auf die build-ID steht, können Sie ein Bild markieren, mit einem Etikett in der große.Moll.patch-format und leicht in der Lage zu sagen, welches Bild oder welches format Ihre Organisation bevorzugt.

Tagging ist Recht einfach. Sie können das Andockfenster tag, es zu tun, nach der Tat, aber es ist viel einfacher, es zu tun, wenn Sie bauen mit der -t Flagge:

docker build-t-repository/Bild:tag .

Dieser baut das Bild aus dem Dockerfile und tags mit den Tags, die Sie angegeben. Der tag ist der [:TAG] Teil, nach dem Semikolon, obwohl Andockfenster sagen “Erfolgreich tagged repository/Bild:tag.” Die repository – /image-Teil ist nur der name des Bildes, und wenn Sie planen, auf drücken, um ein repository, müssen Sie die Markierung in das repository/Bild:tag-format.

Für Docker-Hub, der repository-name ist nur Ihr Benutzername, so würde der Befehl so Aussehen:

docker build-t anthonyheddings/nginx:tag .

Wenn Sie nicht angeben, ein bestimmtes tag, Docker automatisch tags, die er als “die Letzte.”

Eine andere gängige Praxis ist, Kennzeichnen das Bild mit der git-commit-ID, damit die Verknüpfung der version control mit der integrierten Bilder. Sie automatisieren können, ist das ziemlich einfach mit git rev-parse:

docker build-t vicerust/core:$(git rev-parse –verify KOPF) .

Sobald ein Bild markiert ist, können Sie schieben Sie es auf die registry mit docker push, vorbei in das repository/Bild-name:

docker push-repository/Bild

Von dort aus sind Sie in der Lage sind, Zugang zu im Andockfenster normal laufen. Wenn Sie nicht angeben, ein tag, docker automatisch ausgeführt wird, verwendet die Letzte.

Neueste Bedeutet nicht Immer “das Neueste”

Der “Letzte tag” ist ein bisschen verwirrend. Trotz der, wie der name klingt, ist es nicht immer auf die neueste Version. Es ist einfach ein besonderer tag, das wird automatisch zugewiesen, wenn Sie nicht geben Sie einen tag. Dies hat den Effekt, die Vermeidung von tags zusammen und nur einem Druck auf eine “neueste” version.

Sie können die neuesten tag-entweder nur nicht die Angabe eines bestimmten tag:

docker build-t-repository/Bild .

Oder durch manuelles tagging ein Bild, wie die Letzte:

docker build-t-repository/Bild:neueste .

das funktioniert gut, wenn Sie nur den aktuellen tag. Aber wenn Sie wollen, auch mit der version der ID-tags, die Sie brauchen, um doppelte Tags für Ihre Bilder zu jeder Zeit, was dazu führen kann, “neueste” nicht immer bedeutet das Letzte Bild. Es ist gute Praxis, um zu vermeiden, mit neuesten neben anderen tags um zu verhindern, dass diese Verwirrung. Nur die version die tags, zu jeder Zeit, entweder mit manueller patch-Nummern oder mit git-commit-IDs.