visual-studio - Docker 镜像在 Windows/MVC 核心上构建的速度很慢

标签 visual-studio docker asp.net-core build windows-10

我有一个 MVC Core 2.2,在 docker 容器中有多个项目。当我运行它时,构建图像和启动容器大约需要 4 分钟。我正在使用 docker-compose .

这似乎很慢,因为这是一个小的开发,而且我有一台不错的电脑。似乎资源没有被使用,因为在图像构建期间处理器低于 8%,ram 不移动,磁盘几乎为 0%。显卡 0%。下载 Microsoft 镜像时,我可以看到几秒钟的互联网飙升,但仅此而已。我为 docker 提供了以下资源:

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

任何想法如何使用这些硬件资源来加快构建速度?

最佳答案

这似乎是 Windows 10 上 Docker 的一个普遍问题,因为我在网上找到了几个讨论这个问题的线程,而且它似乎通常与分配给 Docker 的硬件资源无关。

所以我在我的 Windows 10 虚拟实例上做了一些尝试,并注意到使用示例 docker-compose 运行一些基于 Linux 的容器的类似行为。

在这里,我报告了我在搜索过程中发现的所有步骤,这些步骤似乎确实加快了我的测试过程中的操作:

  • 在以下位置添加开发(例如 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 索引排除列表 (控制面板-> 索引选项)
  • 执行以下命令刷新 dns:
    ipconfig /flushdns
    
  • 尝试将 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 和真正的操作变得有点慢)
  • 如果安装了任何其他防病毒软件,请添加异常(exception)(也在这里首先尝试禁用它们以查看是否有帮助)
  • 从所有网络接口(interface)中删除所有 IPV6 支持和 NetBIOS

  • 注意:有人建议在这些适用之后卸载 Docker 并安装,但我没有测试,因为我是从全新的 Windows 10 安装开始的。

    希望这些对您的环境也有帮助!

    我发现的最佳引用:
  • https://github.com/docker/for-win/issues/1936
  • https://forums.docker.com/t/docker-for-windows-very-slow-networking-host-directory-as-a-volume/25758
  • 关于visual-studio - Docker 镜像在 Windows/MVC 核心上构建的速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59964194/

    相关文章:

    css - 我如何在母版页中使用 js 文件?

    c# - 我如何知道遗漏了哪些 using-directives?

    apache - 在 docker-compose 中运行 bash 脚本

    docker - 如何在运行的 docker 容器中编辑/etc/hosts 文件

    c# - ASP.NET 核心 : Create and Open PDF (in browser)

    c# - 是否有一些调试工具可以在平面表格中显示结果

    visual-studio - 将 iisexpress 连接到启用安全性的 azure sql 数据库

    docker - 无法在 Ubuntu Xenial 上安装 Docker : invoke-rc. d : initscript docker, 操作 "start"失败

    javascript - 当用户浏览应用程序时,在回发中保留 JavaScript setTimeout 函数调用

    c# - ASP.NET Core 404 响应中的 Service Fabric 反向代理集成