Wie man den docker logout-Befehl verwendet, um sich von einer Registry abzumelden

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man den Befehl docker logout verwendet, um sich sicher von Docker-Registries abzumelden. Wir beginnen damit, den Zweck des Befehls docker logout zu verstehen und warum es wichtig ist, gespeicherte Anmeldeinformationen zu entfernen. Anschließend werden wir untersuchen, wie man sich von der Standard-Docker-Registry (Docker Hub) abmeldet und schließlich, wie man sich von einer bestimmten, nicht-standardmäßigen Registry abmeldet. Dieses praktische Lab wird Sie durch die praktischen Schritte bei der Verwaltung Ihrer Docker-Registry-Anmeldesitzungen führen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/login("Log into Docker Registry") docker/SystemManagementGroup -.-> docker/logout("Log out from Docker Registry") subgraph Lab Skills docker/login -.-> lab-555167{{"Wie man den docker logout-Befehl verwendet, um sich von einer Registry abzumelden"}} docker/logout -.-> lab-555167{{"Wie man den docker logout-Befehl verwendet, um sich von einer Registry abzumelden"}} end

Verständnis des Zwecks von docker logout

In diesem Schritt werden wir den Zweck des Befehls docker logout verstehen. Wenn Sie sich mit dem Befehl docker login bei einer Docker-Registry anmelden, werden Ihre Anmeldeinformationen auf Ihrem System gespeichert. Dies ermöglicht es Ihnen, Images von der Registry zu ziehen (pull) und auf sie zu pushen (push), ohne jedes Mal Benutzername und Passwort erneut eingeben zu müssen. Aus Sicherheitsgründen, insbesondere in geteilten Umgebungen oder nach Abschluss Ihrer Arbeit, ist es jedoch wichtig, sich von der Registry abzumelden. Der Befehl docker logout wird verwendet, um diese gespeicherten Anmeldeinformationen zu entfernen.

Lassen Sie uns zunächst prüfen, ob Sie derzeit bei einer Docker-Registry angemeldet sind. Sie können dies tun, indem Sie versuchen, ein Image zu ziehen, das eine Authentifizierung erfordert, oder indem Sie die Konfigurationsdatei prüfen, in der Docker die Anmeldeinformationen speichert. Der Standardort für die Docker-Konfiguration ist ~/.docker/config.json.

Sie können den Inhalt dieser Datei mit dem Befehl cat anzeigen:

cat ~/.docker/config.json

Wenn Sie angemeldet sind, werden Sie einen Abschnitt wie "auths": { ... } sehen, der Informationen über die Registries enthält, bei denen Sie angemeldet sind, sowie verschlüsselte Anmeldeinformationen. Wenn Sie nicht angemeldet sind, kann der auths-Abschnitt leer sein oder fehlen.

Der Befehl docker logout ist einfach. Wenn er ohne Argumente ausgeführt wird, meldet er Sie von der Standard-Docker-Registry ab, die in der Regel Docker Hub ist.

Lassen Sie uns eine Anmeldung simulieren (wir werden uns hier tatsächlich nicht anmelden, da der Schwerpunkt auf dem Verständnis der Abmeldung liegt) und dann verstehen, wie docker logout funktioniert. Stellen Sie sich vor, Sie hätten gerade docker login ausgeführt. Ihre ~/.docker/config.json-Datei würde mit Ihren Anmeldeinformationen aktualisiert werden.

Um sich nun von der Standard-Registry (Docker Hub) abzumelden, würden Sie einfach ausführen:

docker logout

Nachdem Sie diesen Befehl ausgeführt haben, wird Docker die Anmeldeinformationen für die Standard-Registry aus Ihrer ~/.docker/config.json-Datei entfernen. Dies bedeutet, dass Sie sich erneut anmelden müssen, um Images von Docker Hub zu ziehen oder auf sie zu pushen, die eine Authentifizierung erfordern.

In den nächsten Schritten werden wir tatsächlich Anmelde- und Abmeldungsvorgänge durchführen, um die Wirkung des Befehls docker logout zu sehen.

Abmeldung von der Standard-Registry

In diesem Schritt üben wir die Abmeldung von der Standard-Docker-Registry, die Docker Hub ist. Obwohl wir uns in dieser Lab-Umgebung nicht explizit angemeldet haben, ist der Befehl docker logout darauf ausgelegt, vorhandene Anmeldeinformationen zu entfernen. Wenn Sie docker logout ausführen, wenn Sie nicht angemeldet sind, wird eine Meldung angezeigt, die besagt, dass Sie nicht bei einer Registry angemeldet sind. Dies ist das erwartete Verhalten und bestätigt, dass der Befehl korrekt funktioniert, um Anmeldeinformationen zu prüfen und ggf. zu entfernen.

Zunächst versuchen wir, uns von der Standard-Registry abzumelden. Öffnen Sie Ihr Terminal im Verzeichnis ~/project und führen Sie den folgenden Befehl aus:

docker logout

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Not logged in to any registry

Diese Meldung bestätigt, dass es keine gespeicherten Anmeldeinformationen für die Standard-Registry (Docker Hub) in Ihrer ~/.docker/config.json-Datei gab. Wenn Sie angemeldet gewesen wären, würde die Ausgabe eine erfolgreiche Abmeldung anzeigen.

Um die Wirkung von docker logout besser zu verstehen, untersuchen wir die ~/.docker/config.json-Datei erneut, nachdem wir uns versucht haben, uns abzumelden.

cat ~/.docker/config.json

Sie werden bemerken, dass der auths-Abschnitt, wenn er existierte und Anmeldeinformationen für die Standard-Registry enthielt, jetzt leer sein würde oder der Eintrag für https://index.docker.io/v1/ entfernt würde. Da wir nicht angemeldet waren, sollte der Inhalt der Datei derselbe bleiben wie zuvor, wahrscheinlich mit einem leeren oder fehlenden auths-Abschnitt.

Dieser Schritt zeigt die grundlegende Verwendung von docker logout ohne Argumente, das sich auf die Standard-Docker Hub-Registry bezieht. Im nächsten Schritt werden wir untersuchen, wie man sich von einer bestimmten, nicht-standardmäßigen Registry abmeldet.

Abmeldung von einer bestimmten Registry

In diesem Schritt lernen wir, wie man sich von einer bestimmten Docker-Registry abmeldet, die nicht die Standard-Docker Hub-Registry ist. Dies ist nützlich, wenn Sie mit mehreren Registries arbeiten, wie beispielsweise einer privaten Unternehmens-Registry oder der Container-Registry eines Cloud-Providers.

Um sich von einer bestimmten Registry abzumelden, müssen Sie den Hostnamen der Registry als Argument an den Befehl docker logout übergeben.

Da wir in diesem Lab keine spezifische private Registry eingerichtet haben, verwenden wir ein hypothetisches Beispiel, um die Syntax des Befehls zu demonstrieren. Stellen Sie sich vor, Sie wären bei einer Registry an der Adresse my-private-registry.example.com angemeldet. Um sich von dieser bestimmten Registry abzumelden, würden Sie den folgenden Befehl verwenden:

docker logout my-private-registry.example.com

Wenn Sie diesen Befehl ausführen, sucht Docker nach den mit my-private-registry.example.com verknüpften Anmeldeinformationen in Ihrer ~/.docker/config.json-Datei und entfernt sie. Wenn Sie nicht bei dieser bestimmten Registry angemeldet waren, würde Docker Sie darüber informieren.

Lassen Sie uns dies simulieren, indem wir uns von einer nicht existierenden Registry abzumelden versuchen. Dies zeigt Ihnen die Befehlsstruktur und die erwartete Ausgabe, wenn die Registry in Ihrer Konfiguration nicht gefunden wird.

docker logout non-existent-registry.example.com

Sie werden wahrscheinlich eine Ausgabe ähnlich der folgenden sehen:

Not logged in to non-existent-registry.example.com

Diese Meldung bestätigt, dass Docker versucht hat, Anmeldeinformationen für non-existent-registry.example.com zu finden und zu entfernen, aber keine gefunden hat.

Die Möglichkeit, sich von bestimmten Registries abzumelden, ist wichtig für die Verwaltung des Zugriffs auf verschiedene Image-Quellen und für die Aufrechterhaltung der Sicherheit durch Entfernen unnötig gespeicherter Anmeldeinformationen.

Zusammenfassend lässt sich sagen, dass docker logout ohne Argumente Sie von der Standard-Docker Hub-Registry abmeldet, während docker logout <registry-hostname> Sie von einer bestimmten Registry abmeldet.

Zusammenfassung

In diesem Lab haben wir den Zweck des Befehls docker logout gelernt, der für die Entfernung gespeicherter Docker-Registry-Anmeldeinformationen aus Sicherheitsgründen unerlässlich ist. Wir haben verstanden, dass nach der Anmeldung mit docker login die Anmeldeinformationen in der Datei ~/.docker/config.json gespeichert werden. Wir haben gelernt, wie man diese Datei prüft, um festzustellen, ob man angemeldet ist.

Anschließend haben wir uns auf den Befehl docker logout selbst konzentriert. Wir haben gelernt, dass das Ausführen von docker logout ohne Argumente Sie von der Standard-Docker-Registry (Docker Hub) abmeldet, indem es die Anmeldeinformationen aus der Konfigurationsdatei entfernt. Dies stellt sicher, dass nachfolgende Operationen, die eine Authentifizierung bei der Standard-Registry erfordern, eine neue Anmeldung erfordern werden.