DE
Anmelden Konto erstellen

Docker Registry auf Saplo: Dein privater Bild-Registry ohne Docker Hub Limits

Dein eigener privater Docker-Bild-Registry unter deiner Domain, mit Browser-UI für Repositories, Tags und Ebenen, ohne Docker Hub-Konto und ohne Pull-Rate-Limits. Eine Schritt-für-Schritt-Anleitung, wie du Docker Registry auf Saplo einrichtest.

Grzegorz Kalmus ·

Docker Hub bietet im kostenlosen Plan ein privates Repository und Limits für das Herunterladen von Images. Jedes weitere Image oder ein höheres Pull-Rate-Limit erfordert einen kostenpflichtigen Pro- oder Team-Plan, der pro Benutzer und Monat abgerechnet wird. Docker Registry auf Saplo ist dein eigenes, privates Repository für erstellte Docker Images unter deiner Domain, mit einer einfachen Browser-Oberfläche zum Durchsuchen von Repositories, Tags und Layern, ohne Repository- oder Download-Limits. Im Folgenden erfährst du Schritt für Schritt, wie du Docker Registry auf Saplo einrichtest.

Warum ein eigenes Docker Registry anstelle von Docker Hub?

Docker Hub ist praktisch für den Anfang, hat aber zwei Schwachstellen, die ein eigenes Registry beseitigt:

  • Der kostenlose Docker Hub-Plan bietet nur ein privates Repository. Jedes weitere private Image erfordert einen kostenpflichtigen Pro-Plan (einmalig ab ca. 5 USD pro Monat) oder einen Team-Plan (ab ca. 9 USD pro Monat pro Benutzer), wenn mehrere Personen an dem Projekt arbeiten.
  • Pull-Rate-Limits schränken ein, wie oft pro Tag die CI/CD-Pipeline oder der Produktionsserver ein Image herunterladen können. Bei häufigen Deployments und vielen Instanzen derselben Anwendung kann dies die Bereitstellung im schlimmsten Moment blockieren.
  • In einer unternehmenseigenen CI/CD-Umgebung erstellte Images, die in einer fremden Public Cloud gespeichert sind, sind Daten außerhalb deiner Kontrolle, selbst wenn das Repository als privat gekennzeichnet ist.

Docker Registry auf Saplo ist das offizielle Image registry:2 (Docker Distribution) zusammen mit einer Browser-UI, beides in einem Docker-Container auf deiner Box. Die Anzahl der Repositories und Downloads wird von niemandem gezählt, und die Gesamtkosten sind die Kosten der Box selbst, unabhängig davon, wie viele Images und wie oft pro Tag deine Pipeline sie herunterlädt.

Anforderungen

Um eine Docker Registry auf Saplo einzurichten, benötigst du Folgendes:

  • Eine Box mit ausgeführtem Docker (die Engine schaltet es bei der Installation aus dem Katalog automatisch ein, Container-Nesting ist erforderlich, was Saplo standardmäßig bietet).
  • Mindestens 512 MB freien RAM auf der Box und 10 GB Festplattenspeicher für Images. Der günstigste Plan, der dies unterstützt, ist also Box S für 27 € pro Jahr.
  • Eine Domain oder Subdomain *.saploapp.pl, die in jedem Plan enthalten ist, unter der die Registry und das UI betrieben werden.
  • Eine separate Datenbank benötigst du NICHT. Die Registry speichert die gebauten Images in einem Anwendungsdatenvolumen und nicht in einer SQL-Datenbank.

Eine vollständige Beschreibung der Anwendung und ihres Platzes im Katalog findest du auf der Docker Registry Seite auf Saplo.

Schritt-für-Schritt-Installation

  1. Gehe im Saplo-Panel zum App-Katalog und wähle Docker Registry.
  2. Wähle eine Box mit mindestens 512 MB freiem RAM und 10 GB freiem Speicherplatz sowie eine Domain oder Subdomain, unter der das Registry installiert werden soll.
  3. Bestätige die Installation. Die Engine generiert ein zufälliges Administratorpasswort, speichert es als bcrypt-Hash (das einzige Format, das das Docker Registry im htpasswd-Authentifizierungsmodus unterstützt), erstellt zwei Container, registry aus dem offiziellen registry:2-Image und registry-ui aus dem joxit/docker-registry-ui-Image, und wartet, bis die UI tatsächlich per HTTP antwortet, bevor die Installation als abgeschlossen gilt.
  4. Die UI fungiert als Reverse Proxy für die Registry-API unter demselben Port und derselben Domain, sodass docker login, docker push und docker pull direkt unter der Anwendungsadresse funktionieren, ohne zusätzliche Ports und ohne CORS-Konfiguration.
  5. Die Administrator-Anmeldedaten (Benutzername, Passwort) werden in der Datei DOCKER-REGISTRY-SETUP.txt im Anwendungsverzeichnis gespeichert.

Erste Schritte

  1. Lies den Login und das Passwort aus der Datei DOCKER-REGISTRY-SETUP.txt im App-Verzeichnis (Standard-Login admin, Passwort bei der Installation zufällig generiert).
  2. Melde dich mit deinem lokalen Docker über den Befehl docker login deine-domain.saploapp.pl an und gib den Login und das Passwort aus der Datei ein.
  3. Tagge das Image unter der Registrierungsadresse, zum Beispiel docker tag my-image:latest deine-domain.saploapp.pl/my-image:latest, und pushe es mit dem Befehl docker push.
  4. Rufe die Domainadresse in deinem Browser auf, melde dich mit dem gleichen Login und Passwort an und durchsuche die Repositories, Tags und Layer in der joxit/docker-registry-ui-Benutzeroberfläche.
  5. Auf dem Produktionsserver oder in der CI/CD-Pipeline ziehe das Image mit dem Befehl docker pull deine-domain.saploapp.pl/my-image:latest herunter, nachdem du dich mit demselben Konto angemeldet hast.

Docker Registry auf Saplo vs. Docker Hub

Docker Hub Free Docker Hub Pro/Team Docker Registry auf Saplo
Limit für private Repositories eines unbegrenzt unbegrenzt
Pull-Rate-Limit ja, für anonyme und kostenlose Konten höher, wird aber weiterhin gezählt keines
Wo die Images gespeichert werden auf Docker Inc. Servern auf Docker Inc. Servern auf deiner Box
Kosten 0 USD, aber mit Limits ab ca. 5 USD pro Benutzer und Monat Kosten der Box selbst (ab 27 € pro Jahr)

Häufig gestellte Fragen

Muss ich ein Konto bei Docker Hub oder einem anderen öffentlichen Register erstellen? Nein, die Docker Registry auf Saplo funktioniert komplett eigenständig. Die Anmeldung bei docker login erfolgt mit einem bei der Installation generierten Login und Passwort, ohne ein Konto bei einem externen Anbieter zu benötigen.

Gibt es eine Begrenzung der Anzahl von Images oder Downloads? Nein, die einzige Einschränkung ist der Speicherplatz deiner Box, den du im Tarif erworben hast.

Kann das Administrator-Passwort geändert werden? Ja, du generierst einen neuen bcrypt-Hash mit dem einmaligen Container httpd:2.4-alpine (docker run --rm httpd:2.4-alpine htpasswd -Bbn user password), ersetzt die Datei htpasswd im App-Verzeichnis und startest den Registry-Container neu.

Benötigt das Register eine separate Datenbank? Nein, Images und deren Metadaten werden im Datenvolumen des Registry-Containers gespeichert, ohne dass eine separate MySQL- oder Postgres-Datenbank erforderlich ist.

Können alte Images und Tags gelöscht werden? Ja, das Löschen von Images ist aktiviert (REGISTRY_STORAGE_DELETE_ENABLED) und direkt über die UI im Browser verfügbar, ohne SSH-Zugriff.

Wenn du heute nur für Docker Hub Pro oder Team bezahlst, um mehr als ein privates Repository zu haben, kontaktiere uns, wir helfen dir gerne, deine eigene Registry einzurichten.

  • #CI/CD
  • #DevOps
  • #Docker
  • #Anleitung