Ich habe einen MVC Core 2.2 mit mehreren Projekten in Docker-Containern. Wenn ich es starte, dauert es ungefähr 4 Minuten, um die Bilder zu erstellen und die Container zu starten. Ich benutze docker-compose
.
Dies scheint langsam zu sein, da dies eine kleine Entwicklung ist und ich einen anständigen Computer habe. Es scheint, dass die Ressourcen nicht verwendet werden, da der Prozessor während der Image-Erstellung unter 8% liegt, der RAM nicht rührt und die Festplatte fast bei 0% liegt. GPU 0%. Ich kann einige Sekunden lang sehen, wie das Internet spitzt, während das Microsoft-Image heruntergeladen wird, aber das war's. Ich habe Docker die folgenden Ressourcen gegeben:
Cores: 8
RAM: 8GB
SWAP: 3gb
Disk Image Size: 64GB (30.5 GB used)
Irgendwelche Ideen, wie diese Hardwareressourcen verwendet werden können, um Builds schneller zu machen?
Antworten:
Es scheint ein allgemeines Problem mit Docker unter Windows 10 zu sein, da ich im Web mehrere Threads gefunden habe, die über dieses Problem sprechen, und es scheint im Allgemeinen nicht mit der Docker zugewiesenen Hardwareressource zu tun zu haben.
Daher habe ich einige Versuche mit meiner virtuellen Windows 10-Instanz durchgeführt und ein ähnliches Verhalten beim Ausführen einiger Linux-basierter Container mithilfe eines Beispiels für Docker-Compose festgestellt.
Hier berichte ich Schritte von allen, die ich während meiner Suche gefunden habe und die die Operationen während meiner Tests wirklich zu beschleunigen schienen:
Fügen Sie Entwicklungsverzeichnisse (z. B. Git-Repos) und Docker-Bildverzeichnisse hinzu auf:
Windows Defender-Ausschlussliste ( https://support.microsoft.com/en-us/help/4028485/windows-10-add-an-exclusion-to-windows-defender-antivirus )
HINWEIS: Versuchen Sie hier zunächst, Windows Defender zu deaktivieren, um festzustellen, ob dies hilfreich ist
Ausschlussliste für die Windows-Indizierung (Systemsteuerung -> Indizierungsoptionen)
Flush dns führt den folgenden Befehl aus:
Versuchen Sie, DNS in beispielsweise Google One (8.8.8.8 - 8.8.4.4) oder Cloud Fare One (1.1.1.1 - 1.0.0.1) zu ändern. (Da ich bereits Google DNS hatte, habe ich in umgekehrter Weise versucht, a einzustellen langsameres DNS und wirklich Operationen wurden etwas langsamer)
Fügen Sie eine Ausnahme hinzu, wenn ein anderes Antivirenprogramm installiert ist (versuchen Sie auch hier, diese zu deaktivieren, um festzustellen, ob dies hilfreich sein kann).
Entfernen Sie alle IPV6-Unterstützung und NetBIOS von allen Netzwerkschnittstellen
HINWEIS: Es wird empfohlen, Docker zu deinstallieren und danach zu installieren, aber ich habe nicht getestet, da ich mit einer neuen Windows 10-Installation begonnen habe.
Hoffe, diese können auch in Ihrer Umgebung helfen!
Beste Referenzen, die ich gefunden habe:
quelle
Überprüfen Sie, ob sich zu viele Dateien im Build-Verzeichnis befinden. Wenn dcoker vorhanden ist, müssen alle Dateien an den Daemon gesendet werden, für deren Fertigstellung auch Zeit benötigt wird.
Sie können die unerwünschten Dateien mit ignorieren
.dockerignore
quelle