在Windows上限制Docker容器磁盘大小

问题描述

我需要一种方法来限制容器的磁盘大小,主要是测试磁盘上没有足够空间时应用程序的行为。我尝试运行的Docker容器使用Linux映像。棘手的一点是,我需要在Windows上执行此操作。我知道使用tmpfs和其他一些技巧来做到这一点,但是它们都不在Windows上起作用。我想我可以对实际磁盘进行分区,然后将其共享到容器中,但是我想避免这种情况,以便于重复使用(就像其他人一样)。

我不太在乎该解决方案的工作方式,当然,我更喜欢通过在docker容器内部安装来完成此操作,这样我就只能限制数据文件夹,而不是整个容器,并且最好限制为也可以与docker-compose一起使用,但是我想无论如何这还是很棘手的,所以即使没有这个也很有帮助!

解决方法

您应该能够创建具有大小限制的卷(用于Linux映像)。
来自docker volume create

Linux上的内置本地驱动程序接受类似于linux mount命令的选项。您可以通过多次传递--opt标志来提供多个选项。某些安装选项(例如o选项)可以采用逗号分隔的选项列表。可在此处找到可用安装选项的完整列表。

例如,以下代码创建一个名为foo的tmpfs卷,其大小为100兆字节,uid为1000。

$ docker volume create --driver local \
   --opt type=tmpfs \
   --opt device=tmpfs \
   --opt o=size=100m,uid=1000 \
   foo

然后您可以声明要挂载的卷in your docker-compose.yml