Docker Registry einfach selbst hosten

Docker Registry einfach selbst hosten

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
6 min

Die Docker Registry (auch bekannt als Distribution) ist die Open-Source-Engine hinter Docker Hub, GitHub Container Registry und den meisten anderen Container Registries. Deine eigene Registry gibt dir volle Kontrolle darüber, wo deine Images liegen - ohne Pull-Rate-Limits und ohne Kosten pro Image. Docker Hubs kostenloser Plan erlaubt nur ein privates Repository, und die Bezahlpläne starten bei $7/Monat mit Storage-Limits.

Sliplane ist eine Managed Container Platform, die Self-Hosting einfach macht. Mit One-Click Deployment bekommst du eine private Docker Registry in Minuten zum Laufen - kein Server-Setup, keine Reverse-Proxy-Konfiguration, keine Infrastruktur zum Verwalten.

Voraussetzungen

Vor dem Deployment brauchst du einen Sliplane Account (Free Trial verfügbar).

Schnellstart

Sliplane bietet One-Click Deployment mit Presets.

SliplaneDocker Registry deployen >
  1. Klick auf den Deploy-Button oben
  2. Wähl ein Projekt aus
  3. Wähl einen Server aus (wenn du dich gerade angemeldet hast, bekommst du einen 48-Stunden Free Trial Server)
  4. Klick auf Deploy!

Was das Preset enthält

Das One-Click Deployment nutzt Sliplane's Docker Registry Preset. Das ist dabei:

  • Offizielles registry Image (registry:3.1.1) basierend auf Distribution v3
  • Spezifischer Version Tag für Stabilität
  • Persistenter Storage gemountet auf /var/lib/registry, damit deine Images Neustarts überleben
  • Healthcheck auf /v2/ (der Registry API Base Path)
  • Keine Authentifizierung standardmäßig (weiter unten steht, wie du sie hinzufügst)

Nächste Schritte

Sobald die Registry auf Sliplane läuft, erreichst du sie über die Domain, die Sliplane dir zugewiesen hat (z.B. docker-registry-xxxx.sliplane.app).

Dein erstes Image pushen

Tagge ein lokales Image mit der Domain deiner Registry und pushe es:

docker tag my-app:latest docker-registry-xxxx.sliplane.app/my-app:latest
docker push docker-registry-xxxx.sliplane.app/my-app:latest

Um das Image auf einem anderen Rechner zu pullen:

docker pull docker-registry-xxxx.sliplane.app/my-app:latest

Mehr Details zum Taggen und Pushen findest du in unseren Guides zu docker tag und docker push.

Authentifizierung hinzufügen

Das Preset deployed ohne Authentifizierung. Für den Produktionseinsatz solltest du Basic Auth einrichten. Das geht über Environment Variables in Sliplane und einen eigenen Start-Command.

Füg diese Environment Variables in deinen Service Settings hinzu:

VariableWert
USERNAMEadmin (oder dein bevorzugter Username)
PASSWORDEin starkes Passwort
REGISTRY_AUTHhtpasswd
REGISTRY_AUTH_HTPASSWD_REALMRegistry Realm
REGISTRY_AUTH_HTPASSWD_PATH/auth/registry.password

Dann setz das Command-Feld auf:

sh -c 'apk add --no-cache apache2-utils && mkdir -p /auth && htpasswd -Bbc /auth/registry.password "$USERNAME" "$PASSWORD" && registry serve /etc/docker/registry/config.yml'

Das installiert das htpasswd-Tool, generiert die Passwort-Datei und startet die Registry. Nach dem Redeploy musst du dich einloggen, bevor du pushen kannst:

docker login docker-registry-xxxx.sliplane.app

Storage

Alle gepushten Images werden in /var/lib/registry gespeichert, das durch ein persistentes Volume gesichert ist. Deine Images sind also auch bei Container-Neustarts sicher. Wie viel Speicher deine Images belegen, siehst du im Sliplane Dashboard unter dem Volume-Bereich deines Servers.

Garbage Collection

Mit der Zeit können gelöschte Image Tags ungenutzte Layer (Blobs) auf der Disk hinterlassen. Die Registry hat einen eingebauten Garbage Collector. Du kannst ihn per docker exec starten:

registry garbage-collect /etc/docker/registry/config.yml

Logging

Die Registry loggt standardmäßig nach STDOUT, was super mit Sliplane's integriertem Log Viewer funktioniert. Du kannst das Log-Level über die Environment Variable REGISTRY_LOG_LEVEL anpassen (debug, info, warn oder error). Allgemeine Docker-Log-Tipps findest du in unserem Post zu Docker Logs.

Kostenvergleich

Du kannst eine Docker Registry auch bei anderen Cloud-Anbietern self-hosten. Hier ein Preisvergleich der gängigsten Anbieter:

AnbietervCPURAMDiskMonatliche KostenHinweis
Sliplane22 GB40 GB€9 (~$10.65)Flat Rate, 1 TB Bandwidth, SSL inklusive
Fly.io22 GB40 GB~$18Disk und Bandwidth separat abgerechnet
Render12 GB40 GB~$35100 GB Bandwidth, Disk separat abgerechnet
Railway22 GB40 GB~$67 + $20 PlanPro Plan Floor, nutzungsbasiert, Bandwidth separat
Klick hier um zu sehen, wie diese Zahlen berechnet wurden.

(Angenommen eine durchgehend laufende Instanz mit 730 Stunden/Monat)

  • Sliplane: pauschal €9/Monat für den Base Server. Unlimitierte Services auf dem gleichen Server, 1 TB Egress und SSL inklusive.
  • Fly.io: shared-cpu-2x 2 GB = $11.83/Mo + 40 GB Volume × $0.15/GB = $6 -> ~$17.83/Mo. Egress separat ($0.02/GB in EU).
  • Render: nächste Entsprechung ist Standard ($25, 1 vCPU / 2 GB) plus 40 GB Disk × $0.25/GB = $10 -> ~$35/Mo. Ein Upgrade auf Pro (2 vCPU / 4 GB) kostet $85/Mo + Disk.
  • Railway (Pro Plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; Volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/Mo Compute, plus der $20/Mo Pro Plan Floor und $0.05/GB Egress.

Bandwidth-Kosten können bei nutzungsbasierten Anbietern schnell steigen. Nutz unser Bandwidth-Kostenvergleichstool, um zu sehen, was dein Egress bei jedem Anbieter kosten würde.

FAQ

Warum sollte ich meine eigene Docker Registry betreiben statt Docker Hub zu nutzen?

Eine private Registry gibt dir unlimitierte private Repositories, keine Pull-Rate-Limits und volle Kontrolle über deine Daten. Das ist besonders nützlich für CI/CD-Pipelines, die häufig pushen und pullen, oder wenn deine Images proprietären Code enthalten, den du nicht bei einem Drittanbieter haben willst.

Kann ich meine Registry mit Sliplane's Custom Registry Feature nutzen?

Ja. Sliplane unterstützt Deployments von Custom Registries. Sobald deine Registry läuft, kannst du sie als Deployment-Quelle für andere Services auf Sliplane konfigurieren.

Wie update ich die Docker Registry?

Ändere den Image Tag in deinen Service Settings (z.B. von registry:3.1.1 auf eine neuere Version) und deploye neu. Schau auf Docker Hub nach der neuesten stabilen Version.

Wie viel Storage brauche ich?

Das hängt von deinen Image-Größen ab und wie viele Versionen du behältst. Ein typisches Web-App-Image ist 100-500 MB groß. Das Standard 40 GB Volume auf Sliplane's Base Server kann Dutzende Images aufnehmen. Du kannst auf einen größeren Server upgraden, wenn du mehr Platz brauchst.

Kann ich Docker Compose mit meiner privaten Registry nutzen?

Ja. In deiner compose.yml referenzierst du Images mit der vollständigen Domain deiner Registry:

services:
  web:
    image: docker-registry-xxxx.sliplane.app/my-app:latest

Mehr zu Docker Compose findest du in unserem Guide zu Docker Compose.

Hoste deine Docker Registry jetzt - ganz einfach!

Sliplane gibt dir alles, was du brauchst, um deine eigene private Docker Registry zu betreiben.