2016-07-26 18 views
0

In meiner vorherigen Firma haben wir eine Micro-Service-Architektur eingeführt und Docker verwendet, um sie zu implementieren. Die durchschnittliche Größe unserer Docker-Images betrug ~ 300 MB - ~ 600 MB. Allerdings verwendet meine neue Firma Docker hauptsächlich für den Entwicklungs-Workflow, und die durchschnittliche Bildgröße beträgt ~ 1,5 GB - ~ 3 GB. Einige der größeren Bilder (10 GB +) werden aktiv refaktoriert, um die Bildgröße zu reduzieren.Welche Docker-Bildgröße wird als "zu groß" betrachtet?

Nach allem, was ich gelesen habe, fühle ich, dass diese Bilder zu groß sind, und wir werden Probleme auf der ganzen Linie, aber der Rest des Teams fühlen, dass Docker Engine und Docker Swarm diese Bildgrößen ohne Probleme behandeln.

Meine Frage: Gibt es einen akzeptierten idealen Bereich für Docker-Bilder und welche Fallstricke (falls vorhanden) werde ich haben, wenn ich versuche, einen Workflow mit GB-Bildern zu verwenden?

Antwort

-1

Docker selbst kann mit ihnen kein Problem umgehen, ich kann nichts über Schwarm sagen. "Wie groß ist zu groß" ist etwas, das nur Ihr Team beantworten kann. Wenn das Bild 5 GB und 90% davon für die Anwendung wichtig ist, würde ich nicht sagen, dass es aufgebläht ist. Wenn das Bild nur 300M groß ist, aber nur 10% von der Anwendung benötigt wird, würde ich sagen, dass es aufgebläht ist.

FWIW, je nachdem gerade jetzt "neu" Ihre "neue Firma" ist, ist es wahrscheinlich am besten, wenn Sie das Boot nicht rocken.

1

In meiner, ist ideale Größe nur ideal für Sie genau Fall. Für mich und meine aktuelle Firma haben wir kein Bild größer als 1GB.

Wenn Sie Bild mit 10GB Größe verwenden und keine Probleme haben (ist es jemals möglich ?!), so ist es in Ordnung für Sie.

Als Beispiel für Problemfall, könnten Sie Frage in Betracht ziehen: "Ist es in Ordnung, dass ich 1-2 Stunden warten, während mein Bild unter Bereitstellung über das Internet auf Remote-Server/dev-Maschine?", Ist dies aller Wahrscheinlichkeit nach nicht ok. Auf der anderen Seite haben Sie keine Probleme, wenn Sie nicht mit einem solchen Problem konfrontiert sind.
Ein anderes Problem ist, während kleines Bild für einige Sekunden startet, startet das große für Minuten. Es kann auch das "hot deploy" -Schema abbrechen, wenn Sie es verwenden.

Es könnte auch angebracht sein zu überprüfen, warum Sie Bild so groß ist, können Sie how layers work lesen. Kurz, wenn Sie 2 Dockerfile haben:
Erstens:

RUN download something huge that weight 5GB 
RUN remove something huge from above 

Zweitens:

RUN download something huge that weight 5GB &&\ 
    remove something huge from above 

Als Ergebnis ist das zweite Bild Gewicht 5GB weniger als die erste, während sie die gleichen sind Innerhalb.

Ein weiterer Trick ist die Verwendung kleiner Grundbilder von Anfang an. Gerade dieser Unterschied vergleichen:

IMAGE NAME  SIZE 
busybox  1 MB 
alpine   3 MB 
debian   125 MB 
ubuntu   188 MB 

Während Debian und Ubuntu sind fast die gleichen innen, es wird Ihnen von Anfang 50MB zu speichern, und weniger Abhängigkeiten in Zukunft brauchen.

+0

Danke für die Antwort. Meine Frage war jedoch nicht, wie kann ich die Bildgröße reduzieren, sondern eher "wenn mein Bild so klein wie möglich ist und es noch 3 GB ist, auf welche Probleme werde ich stoßen?" – user1873858