Schritte zum Verschieben eines Docker-Images in die GitHub Container Registry (ghcr.io)

Überblick

Am 1. September 2020 hat GitHub GitHub Container Registry als öffentliche Beta angekündigt und am selben Tag damit begonnen. wurde. Es ist eines der öffentlichen Register (in denen Sie Ihre Docker-Bilder ablegen) wie Docker Hub, und es ist ein Dienst, den jeder mit einem GitHub-Konto nutzen kann.

Dies fasst die Schritte zusammen, um ein Docker-Image auf ghcr.io zu pushen und das Image für jedermann zum Herunterladen verfügbar zu machen.

Was ist GitHub Container Registry?

--GitHubs (derzeit) kostenlose Docker-Image-Registrierung mit unbegrenzter Kapazität (ghcr.io ist getrennt von der vorherigendocker.pkg.github.com) --Docker-Bilder können von jedem heruntergeladen werden (anonyme Pulls), und Sie können zwischen öffentlich und privat wählen.

Aus dem oben Gesagten macht GitHub Container Registry Docker-Images an Dritte, ohne von [der neuen Image-Speicherrichtlinie von Docker Hub] eingeschränkt oder beeinflusst zu werden (https://qiita.com/zembutsu/items/e92a2e2f46b147e5a206). Es kann gesagt werden, dass es ein Ort ist, der (im Moment) veröffentlicht werden kann.

Verfahren

So pushen Sie ein Bild auf ghcr.io und veröffentlichen es

Um das Bild an GitHub Container Registry (GHCR) zu senden, müssen Sie sich vorab mit dem Befehl docker login bei GHCR anmelden. Um sich anzumelden, müssen Sie auf Ihrer Einstellungsseite auf GitHub ein persönliches Zugriffstoken erstellen (Verfahrensdokumentation (https://docs.github.com/de/github/authenticating-to-). github / Erstellen eines persönlichen Zugriffstokens)).

Hier wird angenommen, dass die Zeichenfolge des Personal Access Token in ~ / ghcr.txt aufgezeichnet ist.

Greifen Sie dann mit dem Befehl "Docker Login" auf "GHCR" zu. Unter "" befindet sich Ihr eigener Benutzername.

cat ~/ghcr.txt | docker login ghcr.io -u <Github Benutzername> --password-stdin

Wenn die Authentifizierung erfolgreich ist, wird eine Meldung ähnlich der folgenden angezeigt:

WARNING! Your password will be stored unencrypted in /home/name/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

Um ein Bild zu senden, müssen Sie das Bild markieren, bevor Sie es senden. Für Docker Hub hatte es das Format " / Bildname: Tag", für GHCR sollte es jedoch die Form "ghcr.io/ / Bildname: Tag" haben.

Zum Beispiel

--Bild mit Bild-ID bf9f52b2d3fa

Wenn es das gibt

Wenn Sie so etwas möchten, müssen Sie das von Ihnen gesendete Bild mit "ghcr.io/zembutsu/docker-sample-nginx/sample-nginx: latest" versehen. Verwenden Sie dazu den Befehl docker tag und führen Sie Folgendes aus:

docker tag bf9f52b2d3fa ghcr.io/zembutsu/docker-sample-nginx/sample-nginx:latest

Nachdem Sie die Tag-Hinzufügung mit "Docker-Bildern" bestätigt haben, senden Sie sie einfach mit dem Befehl "Docker-Push".

$ docker push ghcr.io/zembutsu/docker-sample-nginx/sample-nginx:latest
The push refers to repository [ghcr.io/zembutsu/docker-sample-nginx/sample-nginx]
a49a33440fe7: Pushed
c63ea97607b8: Pushed
6ad8d562c843: Layer already exists
425ee8569962: Layer already exists
5d9ee84be1ec: Layer already exists
6bcd003260b2: Layer already exists
50644c29ef5a: Layer already exists
latest: digest: sha256:d6f2938d0fab3daeb6433c361da460970eb9b8d2796f1679afe6e41bb87b1937 size: 1774

Zu diesem Zeitpunkt wird automatisch ein privates Repository mit dem Namen "docker-sample-nginx" erstellt, das jeder, der den Bildpfad (Bildname / Tag) kennt, herunterladen kann.

Um das hochgeladene Bild anzuzeigen, klicken Sie in Ihrem GitHub-Profil auf die Registerkarte "Pakete". In den Paketinformationen werden die Docker-Bildinformationen mit der Bezeichnung "Privat" angezeigt.

image.png

Sie können auf den hier angezeigten Paketnamen klicken, um die URL zum Abrufen des Bildes zu überprüfen, das Bild zu veröffentlichen oder das Bild zu löschen. Klicken Sie auf "Paket bearbeiten", um diese Zustände zu ändern.

image.png

Sie können alle Tags mit "Alle Versionen anzeigen" anzeigen und jedes Tag löschen.

image.png

Außerdem bietet Ihnen "Paketeinstellungen" die Möglichkeit, dieses Paket öffentlich zu machen oder zu löschen.

image.png

Wenn Sie hier "Veröffentlichen" auswählen, werden die Paketinformationen zum Zielbild auch in Ihrem Profil angezeigt.

Enjoy!

Referenzinformationen

Recommended Posts

Schritte zum Verschieben eines Docker-Images in die GitHub Container Registry (ghcr.io)
Docker Push zur GitHub Container Registry (ghcr.io)
Minimaler Workflow zum Verschieben des Docker-Images in die Github-Container-Registrierung mit Github-Aktionen
Übertragen Sie ein Docker-Image von GitHub Actions in die GitHub Container Registry
Testen, erstellen und verschieben Sie Docker-Images mithilfe von GitHub-Aktionen in die GitHub-Container-Registrierung
[GCP] Bis Sie das lokale Docker-Image in die Container-Registrierung verschieben
[Persönliche Notizen] So verschieben Sie ein Docker-Image in GitHub-Pakete
Veröffentlichen Sie das Docker-Image in der GitHub-Paketregistrierung
Migrieren Sie Dockerhub-Images in die Github Container Registry
Schieben Sie das Image mit Jib zum Docker-Hub
Übertragen Sie das von Docker Hub verteilte Docker-Image in die Google Container-Registrierung und starten Sie die VM basierend auf diesem Image
Erste Schritte mit der Git Hub Container Registry anstelle von Docker Hub
Die Geschichte, wie ein Docker-Container mit GitHub-Aktionen in die GitHub-Paketregistrierung und den Docker-Hub verschoben wird
Einführung in Linux Container / Docker (Teil 1)
Schritte zum Ausführen von Docker auf einem Mac
Migrieren Sie das Docker-Image auf einen anderen Server
Einführung in Linux Container / Docker (Teil 2)
2. Erstellen Sie ein Docker-Image und registrieren Sie die Registrierung
[Docker] Kopieren Sie Dateien aus dem Docker-Container auf den Host
[Docker] Starten Sie den Container, starten Sie die Bash im Container und löschen Sie das Bild
Docker Container Build kann PHP-Radis nicht installieren
Einführung in die praktische Containerentwicklung von Docker / Kubernetes
Schritte zum Registrieren einer Java-Datei auf GitHub
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen
So überprüfen Sie das Protokoll im Docker-Container
So erhalten Sie einen Heapdump aus einem Docker-Container
So verkleinern Sie das Spring Boot Docker-Image
Einstellung zum Verlassen des Docker-Containers mit VScode
Kopieren Sie Dateien vom Docker-Container auf den Host (Docker-CP).
Ich habe einen Docker-Container erstellt, um Maven auszuführen
So aktualisieren Sie eine vorgefertigte Datei in einem Docker-Container
So geben Sie jemandem Ihr Image mit Docker
Aktualisieren Sie das Container-Image mit KUSANAGI Runs on Docker
Ändern Sie den Docker-Image- und Container-Platzierungsordner