Docker映像在Windows / MVC Core上的构建速度很慢


9

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

考虑到这是一个很小的发展并且我有一台不错的计算机,所以这似乎很慢。似乎没有使用资源,因为在映像构建期间处理器低于8%,ram不会移动,磁盘几乎为0%。GPU 0%。下载Microsoft映像时,我可以看到互联网激增了几秒钟,仅此而已。我给了docker以下资源:

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

有什么想法可以利用这些硬件资源来加快构建速度吗?


您是否使用Windows或Linux Core基本映像?
ThomasBrüggemann

我在Windows 10计算机上使用基于Linux的映像
mgPePe

1
因此Linux容器不会在Windows 10下本机运行,Docker for Windows将为此创建一个特殊的VM,这可能会导致延迟。它具有实验性功能,但仍在开发中,请参见github.com/moby/moby/issues/33850
ThomasBrüggemann

Answers:


2

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

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

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

  1. 在以下位置添加开发(例如git repos)和docker映像目录:

  2. 刷新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支持和NetBIOS

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

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

我发现的最佳参考文献:


1

检查构建目录中是否有太多文件,是否有dcoker需要将所有文件发送到守护程序,这也需要时间来完成...

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.