Ich baue ein Docker-Bild auf meinem Raspberry Pi, was natürlich einige Zeit in Anspruch nimmt. Das Problem hierbei ist, dass selbst sehr einfache Befehle in der Docker-Datei, wie das Setzen einer Umgebungsvariablen, die Verwendung von chmod +x
für eine einzelne Datei oder das Freigeben von Port 80 Minuten dauern.
Hier ist ein Auszug meiner Dockerfile:
%Vor% Denken Sie daran, dass dies ein ARMv6
Basisbild ist, damit es auf einem Raspberry Pi laufen kann und ich docker 1.5.0 für das Hypriot Raspberry Pi OS verwende.
Kopieren sie die erstellten Layer für jeden Befehl oder warum dauert jeder der letzten Befehle Minuten?
Jede Anweisung von Dockerfile
wird in einem Container ausgeführt. Was es bedeutet, ist, dass es für jede Anweisung folgendes macht:
--rm
angegeben ist) (Entfernen des Container-Lese- / Schreib-Layers) Es sind ein paar E / A-Vorgänge beteiligt. Auf einer SSD ist es sehr schnell, genauso wie auf einer guten Festplatte. Wenn Sie es auf dem Raspberry PI erstellen, wenn Sie es auf der SD-Karte (oder MicroSD) bauen, ist die Leistung der SD-Karte wahrscheinlich nicht so gut. Es hängt von der Klasse von dir MicroSD ab und selbst dann denke ich nicht, dass es wirklich gut für die Karte ist. Ich habe es mit einem einfachen Knotenprojekt versucht, und es dauerte definitiv ein paar Minuten statt ein paar Sekunden wie auf meinem Laptop. Es ist Hardware-bezogen (meist I / O für die SD-Karte, vielleicht ein bisschen die CPU, aber ...).
Sie könnten versuchen, eine externe Festplatte zu verwenden, die mit dem Raspberry Pi verbunden ist, und die Andockordner dorthin zu verschieben, um zu sehen, ob die Leistung besser ist.
Dies ist eine alte Frage, aber als Referenz haben Sie möglicherweise unter dem ausgewählten Speichertreiber gelitten.
Unter Ubuntu / Debian verwendet Docker standardmäßig einen AUFS-Speichertreiber, der ziemlich schnell ist. Auf anderen Distributionen verwendet Docker standardmäßig einen devicemapper-Speichertreiber, der mit der Standardkonfiguration sehr langsam ist (aufgrund eines "loop-lvm" -Modus, der standardmäßig konfiguriert ist und nicht für den Produktionseinsatz empfohlen wird).
Lesen Sie diese Anleitung als Referenz und erfahren Sie, wie Sie den devicemapper-Speichertreiber in der Produktion (ohne Schleifenmodus) konfigurieren können: Ссылка