Gambar Docker Lambat Dibangun di Windows / MVC Core

9

Saya memiliki MVC Core 2.2 dengan beberapa proyek dalam wadah buruh pelabuhan. Ketika saya menjalankannya, dibutuhkan sekitar 4 menit untuk membangun gambar dan menjalankan wadah. Saya menggunakan docker-compose.

Ini tampaknya lambat, mengingat ini adalah pengembangan kecil dan saya memiliki komputer yang layak. Tampaknya sumber daya tidak digunakan, karena prosesor di bawah 8% selama pembuatan gambar, ram tidak bergerak, disk hampir pada 0%. GPU 0%. Saya dapat melihat lonjakan internet selama beberapa detik saat gambar Microsoft diunduh, tetapi hanya itu. Saya telah memberi buruh pelabuhan sumber daya berikut:

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

Adakah ide bagaimana sumber daya perangkat keras ini dapat digunakan untuk membuat build lebih cepat?

mgPePe
sumber
Apakah Anda menggunakan Windows atau Linux Core Base-Images?
Thomas Brüggemann
Saya menggunakan gambar berbasis Linux pada mesin Windows 10
mgPePe
1
Jadi wadah Linux tidak akan berjalan asli di bawah Windows 10, Docker untuk Windows akan membuat VM khusus untuk itu, mungkin ini akan menyebabkan penundaan. Itu ada Fitur eksperimental tetapi ini masih dalam pengembangan lihat github.com/moby/moby/issues/33850
Thomas Brüggemann

Jawaban:

2

Tampaknya menjadi masalah umum dengan Docker pada Windows 10 karena saya menemukan beberapa utas di web berbicara tentang masalah ini dan tampaknya umumnya tidak terkait dengan sumber daya perangkat keras yang ditugaskan ke Docker.

Jadi saya telah melakukan beberapa percobaan pada contoh virtual Windows 10 saya dan melihat perilaku serupa menjalankan beberapa wadah berbasis Linux menggunakan contoh pembuatan docker.

Di sini saya melaporkan langkah-langkah, dari semua yang saya temukan selama pencarian saya, yang benar-benar tampaknya mempercepat operasi selama pengujian saya:

  1. Tambahkan pengembangan (mis. Git repos) dan direktori gambar buruh pelabuhan di:

  2. Flush dns menjalankan perintah berikut:

    ipconfig /flushdns
    
  3. Cobalah untuk mengubah DNS ke misalnya Google satu (8.8.8.8 - 8.8.4.4) atau Cloud Fare satu (1.1.1.1 - 1.0.0.1) (Di sini, karena saya sudah memiliki Google DNS, saya mencoba dengan cara yang berlawanan menetapkan suatu DNS lebih lambat dan benar-benar operasi menjadi sedikit lebih lambat)

  4. Tambahkan pengecualian jika ada antivirus lain yang diinstal (juga di sini pertama-tama coba nonaktifkan mereka untuk melihat apakah ini dapat membantu)

  5. Hapus semua dukungan IPV6 dan NetBIOS dari semua antarmuka jaringan

CATATAN: Seseorang menyarankan untuk menghapus instalasi Docker dan menginstal setelah ini berlaku tetapi saya tidak menguji karena saya sudah mulai dari instalasi Windows 10 baru.

Semoga ini dapat membantu juga di lingkungan Anda!

Referensi terbaik yang saya temukan:

gcallea
sumber
1

periksa apakah ada terlalu banyak file dalam direktori build, jika ada dcoker perlu mengirim semua file ke daemon yang perlu juga waktu untuk menyelesaikan ......

Anda dapat mengabaikan file yang tidak diinginkan menggunakan .dockerignore

Sebelum buruh pelabuhan, CLI mengirimkan konteks ke daemon buruh pelabuhan, ia mencari file bernama .dockerignore di direktori root konteks. Jika file ini ada, CLI memodifikasi konteks untuk mengecualikan file dan direktori yang cocok dengan pola di dalamnya. Ini membantu menghindari pengiriman file dan direktori besar atau sensitif ke daemon yang tidak perlu dan berpotensi menambahkannya ke gambar menggunakan ADD atau COPY.

LinPy
sumber