/var/lib/docker/devicemapper/devicemapper/data 占用空间很大
他是用来存储对应的存储池和相关的元数据的。超标原因是因为他是稀疏文件会自己默认占位这件事告诉我们在创建容器时需要修改docker默认存储下面是解决方法:1.使用更大的文件/磁盘/逻辑卷创建data文件:2.通过Docker启动参数的--storage-opt选项来限制每个容器初始化的磁盘大小,如-storage-optdm.basesize=80G这样每个容器启动后...
他是用来存储对应的存储池和相关的元数据的。
超标原因是因为他是稀疏文件会自己默认占位
这件事告诉我们在创建容器时需要修改docker默认存储
下面是解决方法:
1. 使用更大的文件/磁盘/逻辑卷创建data文件:
2. 通过Docker启动参数的--storage-opt选项来限制每个容器初始化的磁盘大小,如-storage-opt dm.basesize=80G 这样每个容器启动后,根目录的总空间就是80G。 但是我总觉得这样的解决方式不够优雅,需要多步操作才能满足需求,同时,容器的空间还是被限制的,只是限制的大小变化而已。
在Docker的官方网站上:(https://docs.docker.com/engine/reference/commandline/dockerd/)
Docker在存储驱动方面支持 AUFS、Device Mapper、Btrfs、ZFS、 Overlay 、Overlay2等多址方式,现由于AUFS并未并入内核,目前只有Ubuntu系统上能够使用aufs作为docker的存储引擎,而在CentOS系统上默认使用Device Mapper,但是幸运的是,在Linux内核3.18.0以上的版本,是可以原生支持Overlay驱动方式的,Overlayfs跟AUFS很像,但是性能比AUFS好,有更好的内存利用。
Docker通过-s参数选择存储驱动, 通过-s=overlay,我们将存储驱动器设置为Overlay方式,再重启Docker应用。
大家可以看到,现在Docker已经是使用了OverlayFS(这里大家要注意,如果系统有存储的镜像和运行的容器,更改存储驱动后将都不可用,请先行备份)。
通过修改为OverlayFS,Device Mapper的存储池容量限制及单个容器运行最大空间限制统统没有了,同时Overlay的读写性能也好于Device Mapper,只需通过-s=overlay一个参数即可优雅的使用更好的文件系统来运行容器。
更多推荐
所有评论(0)