Mam MVC Core 2.2 z wieloma projektami w kontenerach dokerów. Kiedy go uruchamiam, tworzenie obrazów i odpalanie pojemników zajmuje około 4 minut. Używam docker-compose
.
Wydaje się to powolne, biorąc pod uwagę, że jest to niewielki rozwój i mam przyzwoity komputer. Wygląda na to, że zasoby nie są używane, ponieważ procesor ma mniej niż 8% podczas kompilacji obrazu, ram nie porusza się, dysk prawie na 0%. GPU 0%. Widzę gwałtowny wzrost internetu przez kilka sekund podczas pobierania obrazu Microsoft, ale to wszystko. Dałem dokerowi następujące zasoby:
Cores: 8
RAM: 8GB
SWAP: 3gb
Disk Image Size: 64GB (30.5 GB used)
Jakieś pomysły na wykorzystanie tych zasobów sprzętowych do szybszej kompilacji?
Odpowiedzi:
Wydaje się, że jest to ogólny problem z Dockerem na Windows 10, ponieważ znalazłem w Internecie kilka wątków mówiących o tym problemie i wydaje się, że zasadniczo nie jest on związany z zasobami sprzętowymi przypisanymi do Dockera.
Próbowałem więc wirtualnej instancji systemu Windows 10 i zauważyłem podobne zachowanie w przypadku niektórych kontenerów opartych na systemie Linux przy użyciu przykładowego komponowania dokerów.
Tutaj raportuję kroki, pochodzące ze wszystkich, które znalazłem podczas moich poszukiwań, które naprawdę przyspieszyły operacje podczas moich testów:
Dodaj katalogi rozwojowe (np. Repozytorium git) i dokowane katalogi obrazów na:
Lista wykluczeń programu Windows Defender ( https://support.microsoft.com/en-us/help/4028485/windows-10-add-an-exclusion-to-windows-defender-antivirus )
UWAGA: tutaj najpierw spróbuj wyłączyć Windows Defender, aby zobaczyć, czy to pomoże
Lista wykluczeń indeksowania systemu Windows (Panel sterowania -> Opcje indeksowania)
Opróżnij dns, wykonując następujące polecenie:
Spróbuj zmienić DNS na np. Google One (8.8.8.8 - 8.8.4.4) lub Cloud Fare One (1.1.1.1 - 1.0.0.1) (tutaj, ponieważ miałem już Google DNS, próbowałem w odwrotny sposób wolniejszy DNS i tak naprawdę operacje stały się trochę wolniejsze)
Dodaj wyjątek, jeśli zainstalowany jest inny program antywirusowy (również tutaj najpierw spróbuj je wyłączyć, aby zobaczyć, czy to może pomóc)
Usuń całą obsługę IPV6 i NetBIOS ze wszystkich interfejsów sieciowych
UWAGA: Ktoś radzi, aby odinstalować Docker i zainstalować po tych zastosowaniach, ale nie testowałem, ponieważ zacząłem od nowej instalacji systemu Windows 10.
Mam nadzieję, że te mogą pomóc również w twoim środowisku!
Najlepsze referencje, które znalazłem:
źródło
sprawdź, czy w katalogu kompilacji jest zbyt wiele plików, czy dcoker musi wysłać wszystkie pliki do demona, które również potrzebują czasu na zakończenie ......
możesz zignorować niechciane pliki za pomocą
.dockerignore
źródło