Layer 8Ehrlicher Tech-Support
SoftwareSchweregrad: Lästigtoomanyrequests

docker pull: You have reached your pull rate limit

Docker Hub begrenzt anonyme Downloads pro IP. Im Firmennetz oder in der CI teilen sich viele dieselbe Adresse – und das Limit ist plötzlich erreicht.

Aufwand:
ca. 15 Min.
Gilt für:
Docker Hub (Stand 2026)

Das Symptom

Ein Build, der gestern durchlief, bleibt heute gleich am Anfang stehen:

toomanyrequests: You have reached your pull rate limit.

Kein Netzwerkfehler, kein kaputtes Image – Docker Hub weist den Download schlicht ab. Besonders verwirrend: Auf dem eigenen Laptop zu Hause klappt es, im Büro oder in der CI nicht.

Die „Layer 8“-Wahrheit

Das Limit ist kein Defekt, sondern eine Geschäftsentscheidung – und der Grund, warum es so willkürlich zuschlägt, ist ein Denkfehler über das Wort „ich“. Docker Hub zählt anonyme Downloads nicht pro Mensch, sondern pro öffentlicher IP-Adresse. Genau da sitzt Layer 8: Man denkt in „mein Rechner, meine Pulls“, das Netz aber sieht eine einzige Adresse, hinter der sich eine ganze Firma verbirgt. Der Kollege zwei Schreibtische weiter mit seiner fleißigen Pipeline und man selbst zählen auf dasselbe Konto ein, von dem beide nichts wissen.

Deshalb hilft das, was man zuerst probiert – noch einmal ziehen –, überhaupt nicht: Der Zähler steht an der Leitung, nicht am Befehl. Was hilft, ist, aus der anonymen Menge herauszutreten. Ein Login lässt Docker Hub den Download dem eigenen, höheren Kontingent zurechnen statt der geteilten Adresse. In automatischen Builds gehört genau dieser Login an den Anfang, mit Zugangsdaten aus dem Secret-Speicher. Und wer immer wieder dieselben Basis-Images braucht, schaltet einen durchleitenden Cache davor, sodass nur der erste Abruf überhaupt bei Docker Hub landet. Bleibt nichts davon, bleibt Geduld: Das Kontingent füllt sich über sechs Stunden hinweg wieder auf, und keine Wiederholung macht das schneller.

Die echte, verifizierte Lösung

1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:

  1. 1.

    Begreifen, dass das Limit an der IP hängt

    Docker Hub zählt anonyme Downloads nicht pro Person, sondern pro öffentlicher IP-Adresse. Wer aus einem Büro, einem Uni-Netz oder hinter einem NAT-Router zieht, teilt diese Adresse mit allen Kollegen. Das Kontingent kann also aufgebraucht sein, ohne dass man selbst mehr als ein Image geholt hat.

  2. 2.

    Anmelden – das hebt das Kontingent

    Ein angemeldetes Konto zählt gegen das eigene, höhere Kontingent statt gegen die geteilte IP. Schon ein kostenloses Konto verdoppelt laut Docker das Limit gegenüber anonymem Zugriff. Der Login geschieht einmal und wird lokal hinterlegt.

    docker login
  3. 3.

    In der CI die Zugangsdaten hinterlegen

    Automatische Builds ziehen besonders oft und laufen fast immer anonym. Hier gehört ein Login-Schritt vor den ersten Pull, mit den Zugangsdaten aus dem Secret-Speicher des CI-Systems – nicht im Klartext im Skript. Sonst rennt jeder Build-Läufer gegen dieselbe geteilte Adresse.

  4. 4.

    Einen Spiegel oder Cache vorschalten

    Wer viel und wiederholt dieselben Basis-Images zieht, stellt einen durchleitenden Registry-Cache davor (Pull-Through-Cache). Dann geht nur der erste Download wirklich zu Docker Hub, alle weiteren kommen aus dem lokalen Spiegel – das entlastet das Kontingent spürbar.

  5. 5.

    Warten, wenn nichts davon geht

    Das Kontingent füllt sich über ein gleitendes Fenster von sechs Stunden wieder auf. Ein sofortiger Neuversuch trifft dieselbe Wand. Wenn kein Login und kein Cache verfügbar sind, ist Abwarten die einzige ehrliche Antwort – nicht wildes Wiederholen, das nichts beschleunigt.

Häufige Fragen (FAQ)

?Warum trifft es mich, obwohl ich kaum etwas ziehe?

Weil anonyme Downloads pro IP-Adresse gezählt werden, nicht pro Nutzer. Hinter einem Firmen- oder Uni-Router teilen sich viele Rechner eine öffentliche Adresse. Ein einziger Kollege mit einer Pipeline, die im Minutentakt Images zieht, kann das gemeinsame Kontingent allein aufbrauchen – die Wand trifft dann auch alle anderen an derselben Leitung.

?Bringt ein zweites kostenloses Konto mehr Pulls?

Nicht zuverlässig, und es widerspricht den Nutzungsbedingungen. Der saubere Weg ist ein einziges angemeldetes Konto pro Person oder Pipeline und, bei echtem Bedarf, ein bezahlter Tarif oder ein vorgeschalteter Cache. Mehrere Wegwerf-Konten anzulegen, um ein Limit zu umgehen, ist genau die Art Trick, die beim nächsten Regelupdate zuerst zugemacht wird.

Belege

Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.

Zuletzt geprüft am . Dokumentation altert – ein Datum daneben ist der einzige ehrliche Umgang damit.

Auch zu finden unter

Verwandte Fehler

SWLästigCannot connect to the Docker daemon

Docker: Cannot connect to the Docker daemon

docker-Befehle scheitern mit 'Cannot connect to the Docker daemon'? Meist läuft der Dienst nicht oder Rechte fehlen. So läuft es wieder.

SWLästigRestarting (1)

Docker-Container startet endlos neu

Der Container hängt in einer Neustartschleife. Der Hauptprozess beendet sich – die Logs des abgestürzten Laufs verraten, warum.

SWLästigexec format error

Docker: exec format error

Der Container startet nicht und meldet „exec format error“? Fast immer passt die Prozessorarchitektur des Images nicht zum Host — ARM gegen x86.

SWLästigno space left on device

Docker: no space left on device beheben

Docker bricht mit 'no space left on device' ab, obwohl scheinbar Platz da ist? Alte Images, Container und Build-Cache fressen die Platte. So räumst du auf.

SWLästigpermission denied while trying to connect to the Docker daemon socket

Docker: permission denied am Docker-Socket

Docker läuft, aber ohne sudo kommt „permission denied“? Der Zugriff hängt an der Docker-Gruppe — und die hat sicherheitsrelevante Nebenwirkungen.