Hình ảnh Docker đang chậm để xây dựng trên Windows / MVC Core


9

Tôi có một MVC Core 2.2 với nhiều dự án trong các container docker. Khi tôi chạy nó, sẽ mất khoảng 4 phút để xây dựng hình ảnh và kích hoạt các container. Tôi đang sử dụng docker-compose.

Điều này có vẻ chậm, vì đây là sự phát triển nhỏ và tôi có một máy tính khá. Có vẻ như các tài nguyên không được sử dụng, bởi vì bộ xử lý dưới 8% trong quá trình xây dựng hình ảnh, ram không nhúc nhích, đĩa gần như 0%. GPU 0%. Tôi có thể thấy internet tăng vọt trong vài giây trong khi hình ảnh Microsoft được tải xuống, nhưng đó là nó. Tôi đã cung cấp cho docker các tài nguyên sau:

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

Bất kỳ ý tưởng làm thế nào những tài nguyên phần cứng này có thể được sử dụng để làm cho các bản dựng nhanh hơn?


Bạn đã sử dụng Windows hoặc Linux Core Base-Images?
Thomas Brüggemann

Tôi đang sử dụng hình ảnh dựa trên Linux trên máy Windows 10
mgPePe

1
Vì vậy, các bộ chứa Linux sẽ không chạy tự nhiên trong Windows 10, Docker cho Windows sẽ tạo một VM đặc biệt cho điều đó, có thể điều này sẽ gây ra sự chậm trễ. Nó tồn tại một Tính năng thử nghiệm nhưng điều này vẫn đang được phát triển, xem github.com/moby/moby/issues/33850
Thomas Brüggemann

Câu trả lời:


2

Có vẻ như đây là một vấn đề chung với Docker trên Windows 10 vì tôi đã tìm thấy một số luồng trên web nói về vấn đề này và có vẻ như nó không liên quan đến tài nguyên phần cứng được gán cho Docker.

Vì vậy, tôi đã thực hiện một số lần thử trên phiên bản ảo Windows 10 của mình và nhận thấy một hành vi tương tự chạy một số bộ chứa dựa trên Linux bằng cách sử dụng một ví dụ soạn thảo docker.

Ở đây tôi báo cáo các bước, từ tất cả những gì tôi tìm thấy trong các tìm kiếm của mình, điều đó thực sự dường như tăng tốc các hoạt động trong các thử nghiệm của tôi:

  1. Thêm phát triển (ví dụ git repos) và thư mục hình ảnh docker trên:

  2. Flush dns thực hiện lệnh sau:

    ipconfig /flushdns
    
  3. Hãy thử thay đổi DNS thành ví dụ Google một (8.8.8.8 - 8.8.4.4) hoặc Cloud Fare one (1.1.1.1 - 1.0.0.1) (Ở đây, như tôi đã có DNS của Google, tôi đã thử theo cách ngược lại DNS chậm hơn và hoạt động thực sự trở nên chậm hơn một chút)

  4. Thêm ngoại lệ nếu có bất kỳ phần mềm chống vi-rút nào khác được cài đặt (trước tiên ở đây hãy thử vô hiệu hóa chúng để xem điều này có thể giúp ích không)

  5. Xóa tất cả hỗ trợ IPV6 và NetBIOS khỏi tất cả các giao diện mạng

LƯU Ý: Ai đó khuyên bạn nên gỡ cài đặt Docker và cài đặt sau khi áp dụng nhưng tôi đã không kiểm tra vì tôi đã bắt đầu từ bản cài đặt Windows 10 mới.

Hy vọng những điều này cũng có thể giúp đỡ trên môi trường của bạn!

Tài liệu tham khảo tốt nhất tôi tìm thấy:


1

kiểm tra xem có quá nhiều tệp trong thư mục bản dựng không, nếu có dcoker cần gửi tất cả các tệp đến daemon cũng cần thời gian để kết thúc ......

bạn có thể bỏ qua các tệp không mong muốn bằng cách sử dụng .dockerignore

Trước khi docker CLI gửi bối cảnh đến daemon docker, nó tìm kiếm một tệp có tên .dockerignore trong thư mục gốc của bối cảnh. Nếu tệp này tồn tại, CLI sẽ sửa đổi ngữ cảnh để loại trừ các tệp và thư mục khớp với các mẫu trong đó. Điều này giúp tránh việc gửi các tệp và thư mục lớn hoặc nhạy cảm đến daemon một cách không cần thiết và có khả năng thêm chúng vào hình ảnh bằng cách sử dụng THÊM hoặc SAO CHÉP.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.