Wie man sich mit einem privaten Docker-Registry authentifiziert

DockerDockerBeginner
Jetzt üben

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

Einführung

Docker ist eine weit verbreitete Plattform zum Erstellen, Bereitstellen und Verwalten von Anwendungen in einer containerisierten Umgebung. In einigen Fällen müssen Sie mit einem privaten Docker-Registry arbeiten, um Ihre benutzerdefinierten Docker-Images zu speichern und zu verwalten. In diesem Tutorial führen wir Sie durch den Prozess der Authentifizierung mit einem privaten Docker-Registry und gewährleisten so den sicheren Zugang zu Ihren Docker-Images.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/push("Push Image to Repository") docker/ImageOperationsGroup -.-> docker/search("Search Images in Repository") docker/SystemManagementGroup -.-> docker/login("Log into Docker Registry") docker/SystemManagementGroup -.-> docker/logout("Log out from Docker Registry") subgraph Lab Skills docker/pull -.-> lab-411504{{"Wie man sich mit einem privaten Docker-Registry authentifiziert"}} docker/push -.-> lab-411504{{"Wie man sich mit einem privaten Docker-Registry authentifiziert"}} docker/search -.-> lab-411504{{"Wie man sich mit einem privaten Docker-Registry authentifiziert"}} docker/login -.-> lab-411504{{"Wie man sich mit einem privaten Docker-Registry authentifiziert"}} docker/logout -.-> lab-411504{{"Wie man sich mit einem privaten Docker-Registry authentifiziert"}} end

Das Verständnis von privaten Docker-Registrys

Docker-Registrys sind zentrale Hubs, in denen Docker-Images gespeichert und verteilt werden. Sie bieten eine Möglichkeit für Entwickler und Organisationen, ihre Docker-Images zu verwalten und zu teilen. Während es öffentliche Docker-Registrys wie Docker Hub gibt, müssen Organisationen oft ihre eigenen privaten Docker-Registrys aufrechterhalten, um ihre proprietären oder sensiblen Docker-Images zu speichern und zu verwalten.

Ein privates Docker-Registry ist ein Registry, das nicht der Allgemeinheit zugänglich ist. Es wird normalerweise innerhalb der eigenen Infrastruktur einer Organisation oder auf einer Cloud-Plattform gehostet, und der Zugang zum Registry ist auf autorisierte Benutzer oder spezifische Teams beschränkt.

Private Docker-Registrys bieten mehrere Vorteile, darunter:

  1. Sicherheit: Indem Organisationen Docker-Images in einem privaten Registry hosten, können sie den Zugang besser kontrollieren und die Sicherheit ihrer sensiblen oder proprietären Bilder gewährleisten.

  2. Compliance: Private Registrys können Organisationen dabei helfen, regulatorischen und compliance-Requirements zu erfüllen, wie z. B. die Datensouveränität oder branchenspezifische Vorschriften.

  3. Anpassbarkeit: Organisationen können ihre privaten Registrys konfigurieren und anpassen, um ihren spezifischen Anforderungen zu entsprechen, z. B. indem sie mit ihren bestehenden Authentifizierungs- und Autorisierungssystemen integriert werden.

  4. Leistung: Das Hosting eines privaten Registrys innerhalb der Infrastruktur einer Organisation kann die Leistung und Zuverlässigkeit des Image-Pulls und -Pushes verbessern, insbesondere für Organisationen mit einer großen Anzahl von Docker-Images oder häufigen Image-Updates.

Um mit einem privaten Docker-Registry zu interagieren, müssen Sie sich mit dem Registry authentifizieren. Dies umfasst das Angeben gültiger Anmeldeinformationen wie Benutzername und Kennwort oder das Verwenden anderer Authentifizierungsmethoden wie tokenbasierten Authentifizierung oder Integration mit Single Sign-On (SSO)-Systemen.

graph TD A[Entwickler] --> B[Docker CLI] B --> C[Privates Docker-Registry] C --> D[Docker-Images]

Im nächsten Abschnitt werden wir untersuchen, wie Sie sich mit einem privaten Docker-Registry authentifizieren.

Authentifizierung mit einem privaten Registry

Um auf ein privates Docker-Registry zuzugreifen, müssen Sie sich mit dem Registry authentifizieren. Docker unterstützt mehrere Authentifizierungsmethoden für private Registrys, darunter:

Benutzername und Kennwort-Authentifizierung

Die am häufigsten verwendete Authentifizierungsmethode ist die Verwendung eines Benutzernamens und eines Kennworts. Sie können diese Anmeldeinformationen angeben, wenn Sie Bilder an das private Registry ziehen oder pushen.

docker login <private-registry-url>

Dieser Befehl wird Sie auffordern, Ihren Benutzernamen und Ihr Kennwort einzugeben, und Docker wird die Anmeldeinformationen sicher auf Ihrem System speichern.

Token-basierte Authentifizierung

Einige private Registrys verwenden die tokenbasierte Authentifizierung, bei der Sie ein Token erhalten und es verwenden, um sich mit dem Registry zu authentifizieren. Der Prozess zum Erhalten und Verwenden des Tokens variiert je nach Registry-Implementierung.

## Holen Sie sich das Token vom privaten Registry
token=$(curl -s -u username:password https://private-registry.example.com/token)

## Verwenden Sie das Token, um sich mit dem Registry zu authentifizieren
docker login -u token -p $token https://private-registry.example.com

Integration mit Single Sign-On (SSO)

Private Registrys können sich auch mit Single Sign-On (SSO)-Systemen integrieren, was es Benutzern ermöglicht, sich mit ihren vorhandenen SSO-Anmeldeinformationen zu authentifizieren. Der Konfigurations- und Integrationsprozess hängt von dem spezifischen SSO-System und der Registry-Implementierung ab.

graph TD A[Entwickler] --> B[Docker CLI] B --> C[Privates Docker-Registry] C --> D[Authentifizierungsdienst] D --> E[SSO-System]

Unabhängig von der Authentifizierungsmethode ist es wichtig, sicherzustellen, dass die Anmeldeinformationen oder Tokens sicher gespeichert und verwaltet werden und dass der Zugang zum privaten Registry auf autorisierte Benutzer oder Teams beschränkt ist.

Im nächsten Abschnitt werden wir untersuchen, wie Sie Docker konfigurieren, um auf ein privates Registry zuzugreifen.

Konfigurieren von Docker für den Zugang zu einem privaten Registry

Um auf ein privates Docker-Registry zuzugreifen, müssen Sie Docker so konfigurieren, dass es das Registry erkennt und die erforderlichen Authentifizierungsanmeldeinformationen bereitstellt.

Konfigurieren des Docker-Daemons

Der erste Schritt besteht darin, den Docker-Daemon so zu konfigurieren, dass er das private Registry vertraut. Dies können Sie tun, indem Sie die URL des privaten Registries zur insecure-registries-Konfiguration in der Docker-Daemon-Konfigurationsdatei hinzufügen.

## Bearbeiten Sie die Docker-Daemon-Konfigurationsdatei
sudo vi /etc/docker/daemon.json

## Fügen Sie die URL des privaten Registries zur Liste "insecure-registries" hinzu
{
  "insecure-registries": ["private-registry.example.com"]
}

## Starten Sie den Docker-Daemon neu
sudo systemctl restart docker

Konfigurieren der Docker-CLI

Als Nächstes müssen Sie die Docker-CLI so konfigurieren, dass sie sich mit dem privaten Registry authentifiziert. Dies können Sie tun, indem Sie die Anmeldeinformationen des Registries zur Docker-Konfigurationsdatei hinzufügen, die normalerweise unter ~/.docker/config.json gespeichert ist.

## Melden Sie sich am privaten Registry an

## Der Login-Befehl wird die Datei ~/.docker/config.json erstellen oder aktualisieren

Alternativ können Sie die Datei ~/.docker/config.json manuell bearbeiten und die Anmeldeinformationen des Registries hinzufügen:

{
  "auths": {
    "private-registry.example.com": {
      "username": "your-username",
      "password": "your-password"
    }
  }
}

Ziehen und Pushen von Images

Sobald Sie den Docker-Daemon und die Docker-CLI konfiguriert haben, können Sie Images von und zu dem privaten Registry mit den üblichen Docker-Befehlen ziehen und pushen:

## Ziehen Sie ein Image vom privaten Registry
docker pull private-registry.example.com/my-app:latest

## Pushen Sie ein Image an das private Registry
docker push private-registry.example.com/my-app:latest

Indem Sie diese Schritte befolgen, können Sie Docker erfolgreich so konfigurieren, dass es auf ein privates Docker-Registry zugreift und interagiert.

Zusammenfassung

In diesem Tutorial haben Sie gelernt, wie Sie sich mit einem privaten Docker-Registry authentifizieren. Sie haben die Schritte zur Konfiguration von Docker für den Zugang zu einem privaten Registry kennen gelernt, was es Ihnen ermöglicht, Ihre Docker-Images sicher zu verwalten und bereitzustellen. Indem Sie den Authentifizierungsprozess verstehen, können Sie die Integrität und Sicherheit Ihrer Docker-basierten Anwendungen gewährleisten.