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

mgP*_*ePe 11 build visual-studio docker windows-10 asp.net-core

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

这似乎很慢,因为这是小型开发,而且我有一台不错的计算机。似乎资源没有被使用,因为在映像构建期间处理器低于 8%,ram 不让步,磁盘几乎为 0%。图形处理器 0%。下载 Microsoft 映像时,我可以看到 Internet 峰值出现几秒钟,但仅此而已。我已经为 docker 提供了以下资源:

Cores: 8
RAM: 8GB
SWAP: 3gb
Disk Image Size: 64GB (30.5 GB used)
Run Code Online (Sandbox Code Playgroud)

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

gre*_*lea 5

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

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

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

  1. 添加开发(例如 git repos )和 docker 镜像目录:

  2. 执行以下命令刷新 dns:

    ipconfig /flushdns
    
    Run Code Online (Sandbox Code Playgroud)
  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 安装开始的。

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

我找到的最佳参考:


Lin*_*nPy 3

检查build目录中是否有太多文件,如果有dcoker需要将所有文件发送到守护进程,这也需要时间才能完成......

您可以使用忽略不需要的文件.dockerignore

在 docker CLI 将上下文发送到 docker 守护进程之前,它会在上下文的根目录中查找名为 .dockerignore 的文件。如果此文件存在,CLI 会修改上下文以排除与其中的模式匹配的文件和目录。这有助于避免不必要地将大型或敏感文件和目录发送到守护程序,并可能使用 ADD 或 COPY 将它们添加到映像中。