docker集装箱的rootfs大小是如何决定的?
在一个系统上, docker container
的磁盘大小如下所示:
root@b65c6518f583:/# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/docker-253:0-202764498-b65c6518f5837667e7021971a97aebd382dddca6b3ecf4167472ebe17f16aace 99G 268M 94G 1% / tmpfs 5.8G 0 5.8G 0% /dev shm 64M 0 64M 0% /dev/shm tmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup tmpfs 5.8G 96K 5.8G 1% /run/secrets /dev/mapper/rhel-root 50G 20G 31G 40% /etc/hosts
我们可以看到rootfs
大小是99G
。 而在另一个系统中, docker container
的磁盘大小是这样的:
53ac740bd09b:/ # df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/docker-8:8-4202821-2a6f330df1b7b37d55a96b098863f81e4a7f1c39fcca3f5fa03b57998cb33427 9.8G 4.4G 4.9G 48% / tmpfs 126G 0 126G 0% /dev tmpfs 126G 0 126G 0% /sys/fs/cgroup /dev/sda8 97G 11G 82G 12% /data shm 64M 0 64M 0% /dev/shm
rootfs
大小只有9.8G
。
docker集装箱的rootfs
大小是如何决定的? 我如何修改rootfs
大小的值?
容器的默认大小是10 GB,您可以更改它,从中提取
https://docs.docker.com/engine/reference/commandline/daemon/
dm.basesize
指定创build基础设备时使用的大小,这限制了图像和容器的大小。 默认值是10G。 请注意,精简设备本质上是“稀疏”的,所以大部分为空的10G设备不会在池中使用10 GB的空间。 但是,文件系统将会使用更多的空间来存放空间较大的设备。
在守护进程重启时,可以增加基本设备的大小,这将允许所有将来的映像和容器(基于这些新映像)成为新的基本设备大小。
使用示例:
$ docker守护进程–storage-opt dm.basesize = 50G
这将增加基础设备的大小到50G。 如果现有基础设备大小大于50G,则Docker守护进程将引发错误。 用户可以使用此选项来扩展基本设备尺寸,但不允许收缩。
该值影响可能已经被初始化并被拉出的图像inheritance的系统范围的“基本”空文件系统。 通常,对此值的更改需要额外的步骤才能生效:
$ sudo服务docker停止
$ sudo rm -rf / var / lib / docker
$ sudo服务docker启动
使用示例:
$ docker守护进程–storage-opt dm.basesize = 20G