2015-04-24 2 views
6

Ich versuche, über Docker bereitzustellen. Ich verwende den folgenden Workflow:Die Bereitstellung mit Docker Push ist langsam, weil es viele Bilder gibt

  1. Bauen lokal
  2. mein Bild Push-Hub
  3. auf dem Server Andockfenster: ziehen Sie das Bild
  4. Auf dem Server: Starten Sie das Bild

Aber Docker push dauert für immer. Es gibt 30 Bilder, und es muss durch jeden gehen und sagen "Bild existiert bereits". Gibt es eine Möglichkeit, dies zu beschleunigen?

Kann ich alternativ einen anderen Prozess zum Bereitstellen verwenden?

Antwort

4

Wenn Sie eine lokale Registrierung verwenden, haben wir kürzlich einen Redis-Cache hinzugefügt, der dazu beigetragen hat, die Dinge enorm zu beschleunigen. Details darüber, wie dies zu tun, sind auf der Registrierungs Github Seite

https://github.com/docker/docker-registry

Während noch Zeit drängen auf neue Bilder nimmt, sind zieht sehr schnell, da alle Schichten im redis Cache sind.

+0

Wie sieht es mit der Suche nach bereits gedrückten Bildern aus? Es dauert jetzt ~ 2-3 Sekunden pro Bildebene, also, selbst wenn sie alle bereits zwischengespeichert sind, dauert es ewig. –

+0

Dies ist sofort mit unserem Setup. Wenn Sie nach s3 speichern, ist redis hilfreich. Ich treibe nicht viel nach Dockerhub, deshalb kann ich nicht damit sprechen. – seanmcl

+0

Docker-Registrierung ist zugunsten der Docker-Verteilung veraltet. Sie ersetzt das Projekt "docker/docker-registry" mit einem neuen API-Design https://github.com/docker/distribution – calebeaires

2

Der wahrscheinlichste Grund dafür, dass Sie mehr/große Ebenen Ihrer Bilder bei jeder Bereitstellung übertragen, ist, dass Sie Ihre Dockerfiles nicht optimiert haben. Hier ist ein nettes Intro http://blog.tutum.co/2014/10/22/how-to-optimize-your-dockerfile/.

+0

Wie auch immer, für mich verwende ich sowas wie ansible, um die Bilder auf dem Server zu erstellen. –

3

Wenn Sie auf AWS ECR drücken, wie ich war, kann es sein, dass docker auf Ihrem lokalen neu gestartet werden muss. Siehe Thread über AWS ECR Langsamkeit:

https://forums.aws.amazon.com/thread.jspa?threadID=222834

Diese wie auch andere Plattformen beeinflussen können. Es scheint, dass auf dem Mac bei 1.12.1 sowieso einige Langsamkeitsprobleme auftreten, die bei einem Neustart von Docker wegfallen.

Verwandte Themen