อิมเมจของ Docker ช้าสำหรับสร้างบน Windows / MVC Core


9

ฉันมี MVC Core 2.2 ที่มีหลายโครงการในคอนเทนเนอร์นักเทียบท่า เมื่อฉันรันมันใช้เวลาประมาณ 4 นาทีในการสร้างภาพและเปิดไฟบรรจุภัณฑ์ docker-composeฉันใช้

ดูเหมือนจะช้าเพราะนี่เป็นการพัฒนาเล็กน้อยและฉันมีคอมพิวเตอร์ที่ดี ดูเหมือนว่าทรัพยากรไม่ได้ถูกใช้งานเนื่องจากตัวประมวลผลต่ำกว่า 8% ในระหว่างการสร้างอิมเมจหน่วยความจำไม่ขยับเขยื่อนดิสก์อยู่ที่เกือบ 0% GPU 0% ฉันสามารถดูอินเทอร์เน็ตได้อย่างรวดเร็วสักครู่ในขณะที่ดาวน์โหลดอิมเมจของ Microsoft แต่ก็เป็นเช่นนั้น ฉันได้ให้นักเทียบท่ากับแหล่งข้อมูลต่อไปนี้:

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

มีแนวคิดใดบ้างที่สามารถใช้ทรัพยากรฮาร์ดแวร์เหล่านี้เพื่อสร้างงานสร้างได้เร็วขึ้น?


คุณใช้ Windows หรือ Linux Core-Images หรือไม่?
โทมัสBrüggemann

ฉันใช้อิมเมจที่ใช้ Linux บนเครื่อง Windows 10
mgPePe

1
ดังนั้นคอนเทนเนอร์ Linux จะไม่ทำงานภายใต้ Windows 10, Docker for Windows จะสร้าง VM พิเศษสำหรับสิ่งนั้นบางทีนี่อาจทำให้เกิดความล่าช้า มีคุณลักษณะทดลองอยู่ แต่ยังอยู่ในระหว่างการพัฒนาโปรดดูgithub.com/moby/moby/issues/33850
Thomas Brüggemann

คำตอบ:


2

ดูเหมือนว่าจะเป็นปัญหาทั่วไปของ Docker บน Windows 10 เพราะฉันพบหลายกระทู้ในเว็บที่พูดถึงปัญหานี้และดูเหมือนว่าโดยทั่วไปจะไม่เกี่ยวข้องกับทรัพยากรฮาร์ดแวร์ที่กำหนดให้กับ Docker

ดังนั้นฉันจึงลองทำกับอินสแตนซ์เสมือนจริงใน Windows 10 ของฉันและสังเกตเห็นพฤติกรรมที่คล้ายกันที่ใช้งานคอนเทนเนอร์ที่ใช้ Linux บางตัวโดยใช้ตัวอย่างนักเขียนประกอบ

ที่นี่ฉันรายงานขั้นตอนจากทั้งหมดที่ฉันพบในระหว่างการค้นหาของฉันที่ดูเหมือนจะเร่งความเร็วการดำเนินงานระหว่างการทดสอบของฉัน:

  1. เพิ่มการพัฒนา (เช่น git repos) และไดเร็กทอรีอิมเมจ docker ใน:

    • รายการยกเว้นของ Windows Defender ( https://support.microsoft.com/en-us/help/4028485/windows-10-add-an-exclusion-to-windows-defender-antivirus )

      หมายเหตุ: ที่นี่ก่อนอื่นให้ลองปิดการใช้งาน Windows Defender เพื่อดูว่าช่วยได้หรือไม่

    • รายการยกเว้นการทำดัชนีของ Windows (แผงควบคุม -> ตัวเลือกการทำดัชนี)

  2. Flush dns ที่รันคำสั่งต่อไปนี้:

    ipconfig /flushdns
    
  3. ลองเปลี่ยน DNS เป็นตัวอย่างเช่น Google one (8.8.8.8 - 8.8.4.4) หรือ Cloud Fare one (1.1.1.1 - 1.0.0.1) (ที่นี่เนื่องจากฉันมี Google DNS อยู่แล้วฉันได้ลองตั้งค่าในทางตรงกันข้าม DNS ที่ทำงานช้าลงและการทำงานจริง ๆ ก็ช้าลงเล็กน้อย)

  4. เพิ่มข้อยกเว้นหากติดตั้งโปรแกรมป้องกันไวรัสตัวอื่น (ก่อนอื่นให้ลองปิดใช้งานโปรแกรมเหล่านี้เพื่อดูว่าสามารถช่วยได้หรือไม่)

  5. ลบการสนับสนุน IPV6 ทั้งหมดและ NetBIOS จากอินเทอร์เฟซเครือข่ายทั้งหมด

หมายเหตุ: มีคำแนะนำให้ถอนการติดตั้ง Docker และติดตั้งหลังจากใช้งานแล้วแต่ฉันไม่ได้ทดสอบเพราะฉันเริ่มต้นจากการติดตั้ง Windows 10 ใหม่

หวังว่าสิ่งเหล่านี้สามารถช่วยในสภาพแวดล้อมของคุณ!

การอ้างอิงที่ดีที่สุดที่ฉันพบ:


1

ตรวจสอบว่ามีไฟล์มากเกินไปในไดเร็กทอรี build หรือไม่หากมี dcoker จำเป็นต้องส่งไฟล์ทั้งหมดไปยัง daemon ซึ่งต้องการเวลาในการเสร็จสิ้น ......

คุณสามารถละเว้นไฟล์ที่ไม่ต้องการได้โดยใช้ .dockerignore

ก่อนที่นักเทียบท่า CLI จะส่งบริบทไปยังนักเทียบท่า daemon มันจะค้นหาไฟล์ชื่อ .ockerignore ในไดเรกทอรีรากของบริบท หากไฟล์นี้มีอยู่ CLI จะแก้ไขบริบทเพื่อแยกไฟล์และไดเรกทอรีที่ตรงกับรูปแบบในนั้น สิ่งนี้ช่วยในการหลีกเลี่ยงการส่งไฟล์และไดเรกทอรีขนาดใหญ่หรือละเอียดอ่อนไปยัง daemon และอาจเพิ่มลงในรูปภาพโดยใช้ ADD หรือ COPY

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.