Docker Изображения медленно собираются на Windows / MVC Core - PullRequest
9 голосов
/ 29 января 2020

У меня есть MVC Core 2.2 с несколькими проектами в docker контейнерах. Когда я запускаю его, требуется около 4 минут для создания изображений и запуска контейнеров. Я использую docker-compose.

Это кажется медленным, учитывая, что это небольшая разработка и у меня приличный компьютер. Кажется, что ресурсы не используются, потому что процессор меньше 8% при сборке образа, оперативная память не сдвигается с места, диск почти на 0%. GPU 0%. Я вижу, что inte rnet зашкаливает в течение нескольких секунд, пока загружается образ Microsoft, но это все. Я дал docker следующие ресурсы:

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

Есть идеи, как использовать эти аппаратные ресурсы для ускорения сборки?

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Похоже, что это общая проблема с Docker на Windows 10, потому что я обнаружил в сети несколько потоков, рассказывающих об этой проблеме, и, как правило, это не относится к аппаратному ресурсу, назначенному Docker.

Итак, я сделал несколько попыток на своем виртуальном экземпляре Windows 10 и заметил похожее поведение при запуске некоторых контейнеров на основе Linux с использованием примера docker -compose.

Здесь я сообщаю о шагах, найденных во время моих поисков, которые действительно ускоряли операции во время моих тестов:

  1. Добавить разработку (например, git репозиторий) и docker каталогов изображений:

  2. Flu sh dns, выполнив следующую команду:

    ipconfig /flushdns
    
  3. Попробуйте сменить DNS на Google например (8.8.8.8 - 8.8.4.4) или Cloud Fare (1.1.1.1 - 1.0.0.1) (Здесь, поскольку у меня уже был Google DNS, я попытался установить противоположный способ медленный DNS и действительно операции стали немного медленнее)

  4. Добавить исключение, если установлен какой-либо другой антивирус (также здесь сначала попробуйте отключить их чтобы увидеть, может ли это помочь)

  5. Удалите всю поддержку IPV6 и NetB IOS из всех сетевых интерфейсов

ПРИМЕЧАНИЕ: Кто-то посоветует удалить Docker и установить после этого, но я не тестировал, потому что я начал с установки fre sh Windows 10.

Надеюсь, это может помочь и на вашем environment!

Лучшие ссылки, которые я нашел:

1 голос
/ 20 февраля 2020

проверьте, не слишком ли много файлов в каталоге сборки, если dcoker необходимо отправить все файлы демону, что также требует времени, чтобы завершить sh ......

вам может игнорировать ненужные файлы, используя .dockerignore

Перед тем, как CLI docker отправит контекст демону docker, он ищет файл с именем .dockerignore в каталоге root контекст. Если этот файл существует, CLI изменяет контекст, чтобы исключить файлы и каталоги, которые соответствуют шаблонам в нем. Это помогает избежать ненужной отправки больших или конфиденциальных файлов и каталогов демону и потенциального добавления их к изображениям с помощью ADD или COPY.

...