946 Stimmen

Docker, wie Ändere ich den Repository-Namen oder benenne das Bild um?

Ich versuche, den Repository-Namen des Bildes zu ändern:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
server              latest              d583c3ac45fd        vor 26 Minuten      685.5 MB

Daher möchte ich den Namen server in etwas wie myname/server ändern:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
myname/server       latest              d583c3ac45fd        vor 26 Minuten      685.5 MB

Wie kann ich das tun?

1649voto

Andy Punkte 35734
docker image tag server:latest myname/server:latest

oder

docker image tag d583c3ac45fd myname/server:latest

Tags sind lediglich menschenlesbare Aliase für den vollständigen Bildnamen (d583c3ac45fd...).

Daher können Sie so viele davon mit demselben Bild verknüpfen, wie Sie möchten. Wenn Ihnen der alte Name nicht gefällt, können Sie ihn nach dem Umbenennen entfernen:

docker rmi server

Dadurch wird nur der Alias/Tag entfernt. Da d583c3ac45fd andere Namen hat, wird das tatsächliche Bild nicht gelöscht.

56voto

Mwiza Punkte 6008

Als Kurzformel können Sie folgendes ausführen:

docker tag d58 myname/server:latest

Wo d58 die ersten 3 Zeichen der IMAGE ID darstellt, in diesem Fall ist das alles, was Sie brauchen.

Zuletzt können Sie das alte Bild wie folgt entfernen:

docker rmi server

35voto

anthavio Punkte 2078

Vor kurzem musste ich einige Bilder von Docker-Registry (docker.mycompany.com) nach Artifactory (docker.artifactory.mycompany.com) migrieren

docker pull docker.mycompany.com/something/redis:4.0.10
docker tag docker.mycompany.com/something/redis:4.0.10 docker.artifactory.mycompany.com/something/redis:4.0.10
docker push docker.artifactory.mycompany.com/something/redis:4.0.10

30voto

Huiguorou Punkte 227
docker tag AKTUELLER_BILD_NAME GEWÜNSCHTER_BILD_NAME

17voto

A. Rick Punkte 534

Weil Docker keine Funktion zum Umbenennen von Images bietet, hier ist wie man ein Docker-Image in drei Befehlen wirkungsvoll umbenennen kann:

docker pull UglyOldTag
docker tag  UglyOldTag ShinyNewTag
docker rmi  UglyOldTag

Hinweis: Man fügt hier praktisch nur ein neues Tag hinzu und entfernt das alte Tag. Wie oben erwähnt, sind Tags tatsächlich nur ein mnemonischer Alias oder ein Zeiger auf das Image-ID-Feld. Wenn das nicht verwirrend genug ist, nutzt die Docker-API und Dokumentation auch oft "Tag" um sich auf die Version zu beziehen (d.h. auf den Teil des Image-Namens, der nach dem ":" kommt, wie z.B. MyImage**:**latest).

Allerdings sind Tippfehler und falsche Namen nicht der einzige Ort, an dem man ein Tag umbenennen möchte. Zum Beispiel, wenn man Amazon ECR verwendet, muss man vor dem Hochladen des Images den vollständigen ARN als Tag zuweisen. Das bedeutet, dass die Tags groß und hässlich sind!

Hinweis: Wenn Sie sich das folgende Beispiel ansehen, ist es nützlich sich daran zu erinnern, dass Amazon und DockerHub jede Hierarchie von Docker-Images als "Repository" bezeichnen.

# Erstellen des ECR 'Repository' für das Image
aws ecr create-repository \
    --repository-name myFavoriteTag \
    --image-scanning-configuration scanOnPush=true \
    --region myFavoriteRegion
docker tag myFavoriteTag:latest aws_account_id.dkr.ecr.aws_region.amazonaws.com/myFavoriteTag:latest
docker push aws_account_id.dkr.ecr.aws_region.amazonaws.com/myFavoriteTag:latest

Also, eine schnelle Möglichkeit, die Hässlichkeit zu bereinigen, ist

ECR_BASE==aws_account_id.dkr.ecr.aws_region.amazonaws.com
docker pull ${ECR_BASE}/myFavoriteTag
docker tag  ${ECR_BASE}/myFavoriteTag myFavoriteTag
docker rmi  ${ECR_BASE}/myFavoriteTag
docker run myFavoriteTag

Natürlich, um es zurück in ECR einzuchecken, müssen Sie die Hässlichkeit wieder hinzufügen

docker tag ${ECR_BASE}/myFavoriteTag:latest

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X