如何设置 Docker 容器的可写层中允许的最大存储空间?



我想使用Docker的storage_optCLI标志来创建具有最大存储空间的容器。我使用的是Windows,从Docker到第三方建议的所有指南和示例都以Linux为中心。我如何将此存储应用于WSL Windows Docker?

如何在Windows上模拟以下命令:

命令:

docker run ubuntu:latest --mem_limit 100m --name xyz --storage_opt size=100m
错误:

("--storage-opt is supported only for overlay over xfs with 'pquota' mount option")

我读过/尝试过的东西清单:

  • 在Docker Desktop设置的Docker Engine区域设置"storage-driver"密钥。这导致我的安装崩溃并停止工作,需要完全重新安装。
  • https://reece.tech/posts/docker-container-size-quota/
  • docker和图像大小限制
  • https://docs.docker.com/storage/storagedriver/overlayfs-driver/
  • Docker在绑定挂载卷上的每个容器磁盘配额(grub不在Windows上,这是Linux引导加载程序不是吗?)
  • https://fabianlee.org/2020/01/15/docker-use-overlay2-with-an-xfs-backing-filesystem-to-limit-rootfs-size/
  • https://www.reddit.com/r/docker/comments/loleal/how_to_limit_disk_space_for_a_docker_container/
  • https://forums.docker.com/t/limit-disk-space-in-a-docker-container/61068/2

我知道我必须以某种方式将Docker的文件系统更改为overlayxfs带有一些存储标志或环境变量,但我不明白在堆栈中的位置(在我的系统上,或在图像中),或者如果我认为它完全错误。

我所追求的是一种设定一个上限的存储量(100 mb)在一个码头工人容器我构建,大概能编辑它。我相信这是最好的通过Docker,但我可能是错的-感谢任何帮助。

根据文档:

对于devicemapper, btrfs, windowsfilter和zfs图形驱动程序,用户不能传递小于默认BaseFS大小的大小。对于overlay2存储驱动程序,只有当后备文件系统是xfs并且使用pquota挂载选项挂载时,size选项才可用。在这种情况下,用户可以传入小于备份文件大小的任何文件。

意味着你不能使用--storage-opt size=100m标志来指定容器的存储限制,因为Windows支持的fs是NTFS而不是XFS。

话虽如此,你可以尝试通过以下配置来限制Docker的沙箱大小:

net stop docker
dockerd --unregister-service
dockerd --register-service --storage-opt size=10G
net start docker

这里的size是你希望Docker为整个沙盒使用的最大值。

最新更新