Docker本身开销很小,只是将进程与主机上的其他进程隔离。然而,有很多事情会降低容器的性能: 在Windows / MacOS中运行容器时,仅为内嵌VM提供父操作系统内存/CPU的一小部分。 限制容器内的CPU或内存资源。 在主机上启动大量容器。Docker不是魔法,如果10个使用2个G内存的Java实例使主机停滞,那么它们在容器内不会更好地运行。 网络复杂性。默认情况下,每个容器都在隔离的网络桥上启动,其中IO可能需要额外的跳数。如果DNS配置不正确,则可能会因未能查找而出现额外的延迟。 默认情况下,Docker不允许像直接磁盘访问这样的底层要求。您可以授予对特定设备的访问权限,但否则应用程序的容器化版本是有意隔离的。 存储在卷中的数据可能位于效率较低的位置。默认情况下,它是/var/lib/docker文件系统,但您可以轻松地将其指向NFS挂载点,这样性能甚至会更差。 数据库配置错误,例如忘记创建索引。 简而言之,容器本身不太可能是问题,但请确保进行苹果对苹果的比较。
在 WinDocks Windows 容器中运行 SQL Server 时,我们没有看到任何性能损失。 容器实例的表现与共享主机上的任何 SQL Server 实例一样。 声明:我是 WinDocks 的联合创始人