ulimit -f 控制docker容器的外部主机卷的文件大小?

ulimit -f 控制docker容器的外部主机卷的文件大小?

我正在 Unix (AWS EC2) 上的 Docker 容器中运行数据库 (CouchDB)。对于数据库文件,我创建了一个“外部”(即容器外部,但在同一主机上) 卷,该卷安装到 Docker 容器内的数据库。

ulimit -f 是否控制/限制此数据库在 Docker 容器内运行但保存到主机上的“外部”卷的文件的文件大小?我能找到的唯一信息表明 ulimit -f 仅限制通过“shell 或其子级”运行的文件的参数。Docker 容器是否被视为通过 shell 运行?

如果这不起作用,还有其他方法可以限制我的情况的文件大小吗?

答案1

大小限制适用于进程及其子进程,而不是文件系统本身。从容器内进程的角度来看,不同的卷是不同的挂载目录,限制适用于所有文件系统。

我不相信我见过有人用 ulimit 来限制最大文件大小,但没有理由它不起作用。

通常,如果系统管理员担心容器的磁盘空间使用情况,他们通常会将卷隔离到主机上有限大小的分区中。/var/lib/docker在 docker 主机上,将其挂载为单独的分区很常见。如果文件系统支持,也可以启用文件系统引号。为了更精细,可以创建一个循环设备来挂载具有自己文件系统的固定大小文件。每个选项都需要在 docker 之外的主机上进行配置,然后从该受限环境挂载卷。这些都比 ulimit 有优势,因为它们限制的是总文件系统空间,而不是单个文件可以增长的最大值,并且它们只限制该卷而不限制容器内的其他目录。

相关内容