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?

1voto

Manoj Sahu Punkte 2576

Der folgende Python-Code benennt mehrere Bilder um und schiebt sie dann zurück ins neue Repository. Es handelt sich um einen Docker-Repository-Migrationscode, der in Python 3.6 geschrieben wurde.

import docker
client = docker.from_env()
docker_api = docker.APIClient()
images = client.images.list()
for image in images:
    try:
        if image.tags[0] and '' in image.tags[0]: 
            version = image.tags[0].split("/")[-1]
            type(version)
            print("version is {}".format(version))
            docker_api.tag(image.tags[0],"/{}".format(version))
    except Exception as Ex:
        print(image)
        print(Ex)

und dann Bilder mit dem folgenden Shell-Skript hochladen

docker images | grep  | awk '{print $1":"$2}' | xargs -L1 docker push

-1voto

Jasmeet Singh Punkte 334

Um einem Bild einen neuen Tag zu geben, weisen Sie ihm einen neuen Tag zu und entfernen dann den alten Tag mit dem Befehl „rmi“:

$ docker tag $ docker rmi

Dieser zweite Schritt ist beängstigend, da „rmi“ für „remove image“ steht. Docker wird das Bild jedoch nicht tatsächlich entfernen, wenn es noch andere Tags hat. Das heißt, wenn Sie unmittelbar danach folgendes ausführen würden: docker rmi , dann würde es tatsächlich das Bild entfernen (vorausgesetzt, es sind keine anderen Tags dem Bild zugeordnet)

-1voto

Bensuperpc Punkte 1055

Sie können mit diesem Befehl mehrere Repos/Tags mit dem Befehl ändern:

docker images --filter=reference='server' --format='{{.Repository}}:{{.Tag}}' | xargs -r -P$(nproc) -I {} docker image tag {} myname/{}

-5voto

Jon Martins Punkte 65

Laut der Docker-Dokumentation https://docs.docker.com/engine/reference/commandline/rename/

docker rename CONTAINER NEW_NAME

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