Le immagini Docker si stanno sviluppando lentamente su Windows / MVC Core


9

Ho un MVC Core 2.2 con più progetti in contenitori docker. Quando lo eseguo, ci vogliono circa 4 minuti per costruire le immagini e accendere i contenitori. Sto usando docker-compose.

Sembra lento, dato che si tratta di un piccolo sviluppo e ho un computer decente. Sembra che le risorse non vengano utilizzate, poiché il processore è inferiore all'8% durante la creazione dell'immagine, la ram non si muove, il disco quasi allo 0%. GPU 0%. Riesco a vedere Internet spiking per alcuni secondi mentre l'immagine Microsoft viene scaricata, ma il gioco è fatto. Ho dato alla finestra mobile le seguenti risorse:

Cores: 8
RAM: 8GB
SWAP: 3gb
Disk Image Size: 64GB (30.5 GB used)

Qualche idea su come utilizzare queste risorse hardware per rendere le build più veloci?


Hai usato immagini base di Windows o Linux?
Thomas Brüggemann,

Sto usando immagini basate su Linux su macchine Windows 10
mgPePe,

1
Quindi i contenitori Linux non funzioneranno in modo nativo in Windows 10, Docker per Windows creerà una macchina virtuale speciale per questo, forse ciò causerebbe un ritardo. Esiste una caratteristica sperimentale ma è ancora in fase di sviluppo, vedi github.com/moby/moby/issues/33850
Thomas Brüggemann

Risposte:


2

Sembra essere un problema generale con Docker su Windows 10 perché ho trovato diversi thread sul Web che parlano di questo problema e in genere sembra non correlato alla risorsa hardware assegnata a Docker.

Quindi ho fatto alcuni tentativi sulla mia istanza virtuale di Windows 10 e ho notato un comportamento simile eseguendo alcuni contenitori basati su Linux usando un esempio docker-compose.

Qui riporto i passaggi, da tutti quelli che ho trovato durante le mie ricerche, che sembravano velocizzare le operazioni durante i miei test:

  1. Aggiungi le directory di sviluppo (es. Git repos) e docker image su:

  2. Flush dns eseguendo il comando seguente:

    ipconfig /flushdns
    
  3. Prova a cambiare DNS, ad esempio Google One (8.8.8.8 - 8.8.4.4) o Cloud Fare uno (1.1.1.1 - 1.0.0.1) (Qui, dato che avevo già Google DNS, ho provato in modo opposto impostando un DNS più lento e le operazioni sono diventate un po 'più lente)

  4. Aggiungi un'eccezione se è installato un altro antivirus (anche qui prima prova a disabilitarli per vedere se questo può aiutare)

  5. Rimuovere tutto il supporto IPV6 e NetBIOS da tutte le interfacce di rete

NOTA: Qualcuno consiglia di disinstallare Docker e installarlo dopo che si applicano, ma non ho eseguito il test perché sono partito da una nuova installazione di Windows 10.

Spero che questi possano aiutare anche nel tuo ambiente!

Migliori riferimenti che ho trovato:


1

controlla se ci sono troppi file nella directory build, se c'è dcoker devi inviare tutti i file al demone che hanno bisogno anche di tempo per terminare ......

puoi ignorare i file indesiderati usando .dockerignore

Prima che la CLI docker invii il contesto al demone docker, cerca un file denominato .dockerignore nella directory principale del contesto. Se questo file esiste, la CLI modifica il contesto per escludere file e directory che corrispondono ai pattern in esso. Questo aiuta a evitare di inviare inutilmente file e directory di grandi dimensioni o sensibili al demone e di aggiungerli potenzialmente alle immagini usando ADD o COPY.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.