如何限制docker container 最大磁盘 -- docker overlay2 over xfs -- pquota

最近研究docker images。 出现一个问题。 在container 里查看磁盘,发现在host上overlay多大,在container中 “/”就多大。这样可能就会有个问题,要是在container中不断的写磁盘,如果占用太多的话,可能会占满磁盘。

docker run -ti --storage-opt size=20g centos bash

这回返回说让我们开启xfs的pquota。

先看看现在的配置:

vi /etc/fstab
/dev/mapper/centos-root / xfs
defaults 0 0 UUID=52abf537-429d-4027-b88d-1e3816c65fe0 /boot
xfs defaults 0 0 /dev/mapper/centos-home /home
xfs defaults 0 0 /dev/mapper/centos-swap swap
swap defaults 0 0

quota 相关的配置都是 0 也就是default,这个

(rw,relatime,seclabel,attr2,inode64,noquota)

看了看现在的系统把“/”挂载“/dev/mapper/centos-root”,由于整个系统都在用“/”,更改“/”非常麻烦。

解决这个问题的最简单方法就是先把/var/lib/docker中的东西先备份一下。

systemctl stop docker
mount –o pquota /dev/mapper/centos-home /var/lib/docker

为了保持和以前一样的images等的信息。把之前备份的/va/lib/docker下的东西拷回来。

systemctl start docker

这样之后就可以开心的限制container disk。

[root@sessiondbproxy-ci ~]# docker run -ti --storage-opt size=20g centos bash
[root@be88f1fbdc9e /]#
[root@be88f1fbdc9e /]# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 20G 8.0K 20G 1% /
tmpfs 64M 0 64M 0% /dev
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/mapper/centos-home 965G 9.1G 956G 1% /etc/hosts
shm 64M 0 64M 0% /dev/shm
tmpfs 7.9G 0 7.9G 0% /proc/acpi
tmpfs 7.9G 0 7.9G 0% /proc/scsi
tmpfs 7.9G 0 7.9G 0% /sys/firmware

可以看到overlay 也就是“/”变成了20G
看看host的mount情况。之前写过关于images的组织。merged就是container的disk

[root@sessiondbproxy-ci ~]# mount|grep overlay
overlay on /var/lib/docker/overlay2/a1b5e3f34003ece8f9401f6ac8d4d3e4d9b38339bda5beb470e8a598d2e29b2f/merged type overlay (rw,relatime,seclabel,lowerdir=/var/lib/docker/overlay2/l/ZQATCKGMKDJWHX52STDJ5SIDRQ:/var/lib/docker/overlay2/l/N4CRYRNCB6ZP4WKKD2KXMVGFGV,upperdir=/var/lib/docker/overlay2/a1b5e3f34003ece8f9401f6ac8d4d3e4d9b38339bda5beb470e8a598d2e29b2f/diff,workdir=/var/lib/docker/overlay2/a1b5e3f34003ece8f9401f6ac8d4d3e4d9b38339bda5beb470e8a598d2e29b2f/work)

你可能感兴趣的:(docker,study)