In diesem Schritt lernen wir, wie man als Repository-Administrator einen Docker-Image-Tag signiert. Docker Content Trust verwendet digitale Signaturen, um sicherzustellen, dass die Images, die Sie herunterladen, genau so sind, wie der Herausgeber es beabsichtigt hat. Als Repository-Administrator haben Sie die Befugnis, Image-Tags zu signieren und damit ihre Authentizität zu bestätigen.
Bevor wir ein Image signieren können, müssen wir Docker Content Trust aktivieren. Dies geschieht, indem Sie die Umgebungsvariable DOCKER_CONTENT_TRUST
auf 1
setzen.
export DOCKER_CONTENT_TRUST=1
Dieser Befehl aktiviert die Inhaltsüberprüfung für alle nachfolgenden Docker-Befehle in Ihrer aktuellen Terminal-Sitzung.
Nun erstellen wir einen neuen Tag für das hello-world
-Image, das wir im vorherigen Schritt heruntergeladen haben. Der neue Tag soll den Namen eines Repositorys enthalten. Wir verwenden hier den Platzhalter your_docker_username/my-signed-image
. Ersetzen Sie your_docker_username
durch Ihren tatsächlichen Docker Hub-Benutzernamen, falls Sie einen haben, oder verwenden Sie einfach labexuser
für dieses Lab.
docker tag hello-world labexuser/my-signed-image:latest
Dieser Befehl erstellt einen neuen Tag labexuser/my-signed-image:latest
, der auf dasselbe Image wie hello-world
verweist.
Jetzt pushen wir dieses getaggte Image in eine Registry. Wenn Docker Content Trust aktiviert ist, wird Sie Docker auffordern, einen noch nicht signierten Image-Tag zu signieren, wenn Sie ihn pushen.
docker push labexuser/my-signed-image:latest
Wenn Sie diesen Befehl ausführen, wird Docker Sie auffordern, einen neuen Signierschlüssel zu erstellen oder einen bestehenden zu verwenden. Da dies wahrscheinlich das erste Mal ist, dass Sie signieren, werden Sie aufgefordert, einen neuen Schlüssel zu erstellen. Sie müssen ein Passwort für den neuen Schlüssel angeben. Merken Sie sich dieses Passwort, da Sie es später benötigen, um andere Images zu signieren oder Schlüssel zu rotieren.
Nachdem Sie das Passwort eingegeben und bestätigt haben, wird Docker den Image-Tag signieren und ihn in die Registry pushen. Sie sollten eine Ausgabe sehen, die den Signiervorgang und den erfolgreichen Push anzeigt.