← Zurück zur Übersicht In 60 Sekunden zur Docker Registry: Dein eigener privater Image-Speicher

In 60 Sekunden zur Docker Registry: Dein eigener privater Image-Speicher

[WERBUNG: CONTENT OBEN]

Deine private Container-Cloud

Warum solltest du für private Images bezahlen oder sie auf öffentlichen Plattformen riskieren? Mit Docker und Nginx baust du dir in weniger als einer Minute eine eigene, sichere Docker Registry.

Vorbereitung: Dein isolierter Registry-Hub

Wir arbeiten wie immer in einem sauberen, neuen Verzeichnis:

mkdir meine-private-registry && cd meine-private-registry
mkdir auth

Schritt 1: Die Infrastruktur (docker-compose.yml)

Wir nutzen zwei Container: Die offizielle Registry (v2) für die Datenhaltung und Nginx, um den Zugriff mit einem Passwort zu schützen.

meine-private-registry/docker-compose.yml:

version: '3.8'

services:
  registry:
    image: registry:2
    restart: always
    environment:
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/registry.password
    volumes:
      - ./data:/var/lib/registry
      - ./auth:/auth

  nginx:
    image: nginx:alpine
    restart: always
    ports:
      - "5000:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - registry

Schritt 2: Der Türsteher (Nginx Konfiguration)

Damit die Registry sicher ist, leiten wir den Traffic über Nginx.

meine-private-registry/nginx.conf:

events {}
http {
    server {
        listen 80;
        client_max_body_size 0; # Wichtig für große Images!

        location / {
            proxy_pass http://registry:5000;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_read_timeout 900;
        }
    }
}

Schritt 3: Sicherheit (Passwort erstellen)

Wir erstellen eine htpasswd-Datei im auth-Ordner. (Falls du htpasswd nicht installiert hast, kannst du es kurz via sudo apt install apache2-utils nachholen).

# Ersetze 'admin' durch deinen Wunschnamen
htpasswd -Bc auth/registry.password admin

Schritt 4: Starten und Testen

Jetzt bringen wir das System online:

docker compose up -d

⚠️ 📸 SCREENSHOT ANFRAGE: Hier einen Screenshot vom Terminal einfügen, der die erfolgreich gestarteten Container registry und nginx zeigt.

Der erste Push

Um ein Image in deine neue Registry zu laden, musst du es "taggen" und dich einloggen:

# 1. Login (Nutze die Credentials von oben)
docker login localhost:5000

# 2. Bestehendes Image taggen
docker tag my-app:latest localhost:5000/my-app:1.0

# 3. Hochladen
docker push localhost:5000/my-app:1.0

Fazit

Glückwunsch! Du hast soeben deine eigene Infrastruktur um einen wichtigen Baustein erweitert. Deine Images liegen nun sicher auf deinem eigenen Server, geschützt durch Nginx und bereit für professionelle Deployments – ganz ohne monatliche Fixkosten.

Cheatsheet für den Alltag

  • Herunterfahren (Daten bleiben erhalten): docker compose down
  • Herunterfahren & alles löschen: docker compose down -v
  • Logs prüfen: docker compose logs -f
[WERBUNG: CONTENT UNTEN]