Verbinden Sie JFrog Artifactory mit dem Docker Hub, um Einschränkungen der Downloadrate zu vermeiden
Sicherlich haben Sie schon von den neuesten Ankündigungen von Docker über die neuen Einschränkungen von Container-Image-Pulls gehört. Seit dem 1. November 2020 hat Docker die Nutzung des Docker Hub je nach Art des Abonnements eingeschränkt und Pulls gesperrt, die das auferlegte Limit überschreiten. Hinzu kommt das Inkrafttreten der neuen Richtlinien für die Image-Speicherung von Docker: sechs Monate für kostenlose Abonnements bei inaktiven Images. Die ursprünglich für den 1. November vorgesehene Einführung dieser Richtlinien wurde aufgrund des Feedbacks der Community auf Mitte 2021 verschoben. Diese neuen Einschränkungen werden erhebliche Auswirkungen auf die Art der Nutzung von Docker-Container-Images weltweit haben.
Docker war als Open-Source-Initiative mit einem Angebot neuartiger Deployment-Werkzeuge und -Methoden für die Open-Source-Community ein Vorreiter. Daran besteht kein Zweifel. Die neuen Einschränkungen werden für einzelne Entwickler zwar keine erheblichen Auswirkungen mit sich bringen; mittlere bis große Deployment-Teams werden hingegen dadurch vor neue Herausforderungen gestellt. Je größer das Team ist, desto stärker wird es dadurch betroffen sein. Dabei ist das vermutlich nur der Anfang; weitere neue Richtlinien werden voraussichtlich in Zukunft die Nutzung von nicht nur von Docker Hub betreffen.
Die gute Nachricht ist, dass eine Vielzahl von Werkzeugen zur Verwaltung von Docker-Images zur Verfügung stehen, mit denen Sie sicherstellen können, dass die Deployment-Pipeline Ihres Unternehmens davon nicht betroffen wird. JFrog Artifactory gehört zu den beliebtesten Tools und wurde bereits als Docker-Registry verwendet, bevor Docker die Registry-Funktion überhaupt veröffentlicht hatte. Mit Artifactory können Sie Container-Images in einer eigenen privaten Docker-Container-Registry verwalten und gleichzeitig die Abhängigkeit von Docker Hub reduzieren.
Schauen wir uns im Detail an, was die beiden von Docker angekündigten Einschränkungen tatsächlich bedeuten.
Neue Richtlinien für Image-Speicherung von Docker
Bislang konnten Docker-Images für einen unbegrenzten Zeitraum in Docker Hub gespeichert werden. Deshalb verließen sich die Entwickler auf diesen Speicherplatz, ohne sich allzu viele Gedanken darüber zu machen. Die neuen Richtlinien für Image-Speicherung, die Mitte 2021 in Kraft treten, werden sich jeweils nach den neuen Abonnementplänen von Docker richten. Images mit Eigentümern kostenloser Accounts werden beispielsweise nach sechs Monaten ohne Aktivität gelöscht.
Neue Download-Drosselung von Docker
Docker hat seit dem 1. November 2020 bei kostenlosen Accounts ein neues Limit für Datenübermittlung auf 100 Pulls für kostenlose Accounts für anonyme Benutzer und 200 Pulls für authentifizierte bzw. kostenlose Benutzer festgelegt. Das gilt jeweils für 6 Stunden pro IP-Adresse oder einmalige Benutzer. Somit ergeben sich aus 200 Pulls in 6 Stunden eine Verfügbarkeit von etwa 0,55 Pulls pro Minute. Das könnte gegebenenfalls für Sie nicht ausreichen und die Arbeit ins Stocken bringen, wenn Sie nach Erreichen des Limits auf den nächsten 6-Stunden-Zeitrahmen warten müssen. Dabei werden auch Pulls eines Images gezählt, über das Sie bereits verfügen, obwohl die Layer nicht mit heruntergeladen werden. Diese Einschränkung wird insbesondere für Unternehmen mit einem geringen IP-Bereich (manchmal aufgrund der VPN des Unternehmens) für Teams im Unternehmensnetzwerk eine Herausforderung darstellen.
Speichern und schützen Sie Docker-Images in Artifactory
Wenn Artifactory als Docker-Registry eingesetzt wird, können Sie Docker-Images für einen unbegrenzten Zeitraum speichern, ohne sich über Ablaufdaten und Löschungen Gedanken machen zu müssen. Mithilfe von Artifactory können Images zwischengespeichert und Richtlinien für Registry und Speicherung gemäß den Anforderungen Ihres Teams verwaltet werden. Als Best Practice empfiehlt sich, nur die Images zu behalten und zu speichern, die Sie dauerhaft benötigen. Dadurch Nutzen Sie Ihre Docker Pull-Limits auf optimale Weise. Dank Artifactory müssen Sie sich zudem keine Sorgen darüber machen, dass der Speicher aus allen Nähten platzt. Durch den checksum-based Storage nutzt Artifactory das gesamte Speicherpotenzial.
Reduzieren Sie die Anzahl der Docker Hub Pulls
Sie können Artifactory auch als Remote-Repository mit Docker Hub als Proxy nutzen und so die Anzahl der durchgeführten Docker Hub Pulls reduzieren. Artifactory ruft das erforderliche Image von Docker Hub nur einmal ab und stellt sie sämtlichen internen Teams über Artifactory zur Verfügung, ohne dabei erneut auf Docker Hub zurückzugreifen. In Artifactory können Sie sich mit Ihrem Docker-Account mit Docker Hub authentifizieren, damit die einzelnen Abrufe je nach Accounttyp authentifiziert und gezählt werden.
Wenn Sie mit Artifactory ab den Versionen 6.23 und 7.10 und einem Remote-Repository als Proxy arbeiten, werden jetzt zudem die Pull-Mechanismen von Docker Hub mithilfe einer neuen Query effizient genutzt, um das interne Cache besser auszulasten. Somit sendet Artifactory vor einem erneuten GET-Abrufs (der von Docker gemäß den neuen Einschränkungen als Pull gezählt wird) einen HEAD-Abruf, um die Manifest-Dateien miteinander zu vergleichen und zwischengespeicherte Manifeste nur bei Bedarf zu aktualisieren. Artifactory nimmt für ein Image nur einmal einen Pull von Docker vor und macht das Image dann für die gesamte Organisation verfügbar, um die entsprechenden Pull-Limits einzuhalten. Sie können auch jederzeit durch Steuern des Caching-Rhythmus die Abrufanzahl an den Docker Hub reduzieren.
Mehr als nur eine Docker-Registry: Sichern und Distribuieren von Docker Images
Da Sie sich jetzt keine Sorgen mehr über die ständige Verfügbarkeit Ihrer Images machen müssen und auch nicht durch die Einschränkungen von Docker behindert werden, können Sie sich mit dem restlichen Container-Lebenszyklus auseinandersetzen.
Die größten Bedenken in Zusammenhang mit Docker-Images haben Unternehmen aufgrund des „Matroschka“-Problems, das durch die Verschachtelung mehrerer Container innerhalb von Containern mit komplexen Layern entsteht, die mit Standardwerkzeugen nicht sichtbar sind. Dank dem internen Deep-recursive Scanning von JFrog Xray für Container, die in Artifactory gespeichert sind, werden Layer sichtbar gemacht und noch vor dem Übergang zur Produktion Schwachstellen erkannt. Diese Sicherheitsscanfunktion dient nicht nur für Docker, sondern ist auch serienmäßig für alle üblichen Pakettypen verfügbar.
JFrog Platform bietet zudem eine Vielzahl an Werkzeugen zur sicheren und schnellen Softwarelieferung an die Edge. Dank der Peer-to-Peer-Funktion unterstützt Sie JFrog dabei, Download-Explosionen für Container-Images (oft von mehreren GB) über Hunderte von Knoten und Clustern zu verwalten. Dadurch werden sowohl die Latenz als auch der Druck auf einzelne Repositories reduziert. Mit dem Produkt JFrog Distribution können Sie auch Release Bundles mit Containern sichern, diese an die Edge liefern und die Softwareaktualisierungen prüfen – sogar in Air-Gap-Umgebungen.
Die JFrog Plattform umgeht das Risiko weiterer Angebotsänderungen bei Docker und bietet Ihnen Werkzeuge, die über die Docker-Registry-Funktionen hinaus zur Verwaltung des gesamten Lebenszyklus von Container-Deployments dienen.
Sind Sie bereits JFrog-Benutzer? Erfahren Sie mehr über den Einsatz von Artifactory als Docker-Registry.
Neu bei JFrog? Testen Sie die JFrog Plattform kostenlos in der Cloud.