Zum Inhalt springen

Führer

Docker-Hub-Ratenbegrenzungen sind ein CI-Problem, kein Docker-Problem

Anonyme Pulls sind pro IP ratenbegrenzt und CI-Läufer teilen sich IPs. Hier erfahren Sie, wie Sie um 3 Uhr morgens aufhören, es herauszufinden.

{Autor} · {Rolle} · {Datum} · {Minuten} {MinutenLabel}

Docker Hub begrenzt anonyme Pulls pro Quell-IP. Gehostete CI-Läufer stammen aus gemeinsam genutzten Cloud-Bereichen, sodass Ihr Build ein Kontingent mit Fremden teilt. Der Fehler tritt sporadisch auf, tritt ohne Vorwarnung auf und sieht aus wie ein Netzwerkproblem.

Warum es speziell CI betrifft

Ein Entwickler-Laptop ruft einmal ein Basis-Image ab und speichert es wochenlang zwischen. Eine CI-Flotte ruft tausende Male am Tag das gleiche Bild auf jedem flüchtigen Läufer ab, und zwar von Adressen, die sie nicht kontrolliert.

Korrekturen, in der Reihenfolge ihrer Haltbarkeit

  1. Führen Sie einen Registry-Pull-Through-Cache im selben Netzwerk wie Ihre Runner aus – ein Upstream-Pull bedient anschließend jeden Job
  2. Authentifizieren Sie Pulls auch für öffentliche Bilder; Ein authentifizierter Pull greift auf das Kontingent Ihres Kontos zurück und nicht auf das freigegebene anonyme Kontingent
  3. Spiegeln Sie die Handvoll Basisbilder, auf die Sie tatsächlich angewiesen sind, in Ihre eigene Registrierung und heften Sie sie per Digest an
  4. Hören Sie auf, Bilder abzurufen, die Sie nicht benötigen – mehrstufige Builds rufen oft ein Toolchain-Image ab, das keine Laufzeitebene verwendet

Ihr nächster Build könnte doppelt so schnell sein — zum halben Preis

Kostenlos starten. Der Wechsel zurück ist dieselbe eine Zeile — auch dieses Diff veröffentlichen wir.