docker容器的带宽与主机容器的带宽相同吗?还是我们需要配置最小和(或)最大。我注意到,如果需要运行CPU密集型作业,则需要覆盖默认RAM(即2 GB)和交换空间配置。 还需要配置磁盘空间吗?还是默认情况下它会获得与实际硬盘一样多的空间。
答案 0 :(得分:2)
docker容器的带宽与主机容器的带宽相同吗?
是的。网络利用率没有限制。您也许可以使用bridge network施加限制。
我们还需要配置磁盘空间吗?还是默认情况下它会获得与实际硬盘一样多的空间。
这取决于您使用的存储驱动程序,因为每个驱动程序都有其own options。例如,devicemapper默认使用10G,但可以配置为使用更多。现在推荐的驱动程序是overlay2。要使用overlay2.size
配置启动docker。
答案 1 :(得分:1)
这取决于您的主机系统是什么,以及系统有多旧。
在所有情况下,主机和容器之间的网络带宽没有明确限制或分配;容器可以根据主机的限制执行任意数量的网络I / O。
在当前的本机Linux 上,没有桌面应用程序,docker info
会说类似Storage driver: overlay2
(overlay
和aufs
这样的东西这里也)。内存,CPU或磁盘使用情况没有特别限制;在所有情况下,除非使用docker run
选项限制,否则容器最多可以使用全部物理主机资源。
在较早的本地Linux 上,没有桌面应用程序,docker info
说Storage driver: devicemapper
。 (考虑升级主机!)所有容器和图像都存储在单独的文件系统中,并且文件系统的大小受到限制(它包含在docker info
输出中);命名卷和主机绑定装载位于该空间之外。同样,内存和CPU不受本质限制。
Docker Toolbox和Mac版Docker 都使用虚拟机为非Linux主机提供Linux内核。如果看到“内存”滑块,则可能正在使用这样的解决方案。容器,映像和命名卷的磁盘使用仅限于VM容量以及内存和CPU。主机绑定安装通常会传递到主机系统。
答案 2 :(得分:1)
内存和CPU由docker使用cgroups控制。如果您未配置它们,则它们不受限制,并且可以使用Docker主机上的所有内存和CPU。如果您在包含所有Docker for Desktop安装的VM中运行,那么您将受限于该VM的资源。
磁盘空间通常限于/ var / lib / docker中可用的磁盘空间。因此,许多人将其设置为不同的支架。如果将devicemapper用于docker的图形驱动程序(已不推荐使用),则创建磁盘空间的预分配块,然后可以控制该块的大小。您可以通过使用只读根文件系统运行容器来限制容器,并将卷安装到具有有限磁盘空间的容器中。我已经看到了通过回送设备安装完成此操作,但是它需要在docker外部进行一些配置才能设置回送设备。对于VM,您将再次受到分配给该VM的磁盘空间的限制。
默认情况下,网络带宽是无限的。我看到了一个有趣的项目docker-tc,该项目监视容器的标签并使用tc
(流量控制)更新容器的带宽设置。