Docker的Devmapper空间问题 – 增加大小

我在docker devmapper和CentOS7的空间问题上遇到同样的问题

它只是指定清理,但不是如何增加空间,我没有任何图像清理。 我用dm.min_free_space尝试了几件事情,但没有任何工作,并希望增加空间。

操作系统版本/内部版本:红帽企业Linux服务器版本7.3(Maipo)

应用版本:

Client: Version: 1.12.6 API version: 1.24 Package version: docker-common-1.12.6-11.el7.centos.x86_64 Go version: go1.7.4 Git commit: 96d83a5/1.12.6 Built: Tue Mar 7 09:23:34 2017 OS/Arch: linux/amd64 Server: Version: 1.12.6 API version: 1.24 Package version: docker-common-1.12.6-11.el7.centos.x86_64 Go version: go1.7.4 Git commit: 96d83a5/1.12.6 Built: Tue Mar 7 09:23:34 2017 OS/Arch: linux/amd64 

重现步骤

我目前没有运行容器,并且有一些与Kubernetes服务有关的Kubernetes的Docker镜像。

 sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [kubeuser4@kubenode4 Employee]$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/busybox latest 00f017a8c2a6 5 days ago 1.11 MB registry.access.redhat.com/rhel7/pod-infrastructure latest 34d3450d733b 6 weeks ago 205 MB docker.io/java 8 d23bdf5b1b1b 8 weeks ago 643.1 MB gcr.io/google_containers/heapster_grafana v2.6.0-2 b43443930626 12 months ago 230 MB 

当我尝试创build需要使用的应用程序的Docker镜像时,出现以下错误。

 devmapper: Thin Pool has 8783 free data blocks which is less than minimum required 163840 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior 

我试图在其他论坛中提到的清理,但没有帮助太多,得到相同的错误。 当我试图运行这个sudo docker –storage-opt dm.min_free_space = 0%,似乎它开始作为一个守护进程,但它仍然失败,另一个错误“未安装在系统上的docker-runc”,我也不想运行它作为守护进程。

以下是一些命令输出

 sudo dmsetup status localvg00-lv_home: 0 20971520 linear localvg00-lv_home: 20971520 20971520 linear docker-251:5-134039-pool: 0 209715200 thin-pool 924 848/524288 1629226/1638400 - rw discard_passdown queue_if_no_space localvg00-lv_tmp: 0 4194304 linear localvg00-lv_swap: 0 8388608 linear localvg00-lv_root: 0 2097152 linear localvg00-lv_root: 2097152 20971520 linear localvg00-lv_usr: 0 16777216 linear localvg00-lv_var: 0 8388608 linear localvg00-lv_var: 8388608 62914560 linear sudo docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 4 Server Version: 1.12.6 Storage Driver: devicemapper Pool Name: docker-251:5-134039-pool Pool Blocksize: 65.54 kB Base Device Size: 10.74 GB Backing Filesystem: xfs Data file: /dev/loop0 Metadata file: /dev/loop1 Data Space Used: 106.8 GB Data Space Total: 107.4 GB Data Space Available: 601.2 MB Metadata Space Used: 3.473 MB Metadata Space Total: 2.147 GB Metadata Space Available: 2.144 GB Thin Pool Minimum Free Space: 10.74 GB Udev Sync Supported: true Deferred Removal Enabled: false Deferred Deletion Enabled: false Deferred Deleted Device Count: 0 Data loop file: /var/lib/docker/devicemapper/devicemapper/data WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device. Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata Library Version: 1.02.135-RHEL7 (2016-11-16) Logging Driver: journald Cgroup Driver: systemd Plugins: Volume: local Network: overlay null bridge host Swarm: inactive Runtimes: runc docker-runc Default Runtime: docker-runc Security Options: seccomp Kernel Version: 4.1.12-61.1.28.el7uek.x86_64 Operating System: Oracle Linux Server 7.3 OSType: linux Architecture: x86_64 Number of Docker Hooks: 2 CPUs: 2 Total Memory: 7.545 GiB Name: kubenode4 

我也尝试增加我的Linux机器上的所有物理卷大小和逻辑卷大小(lv_var),但仍然无法正常工作。

 sudo lvs [sudo] password for kubeuser4: LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv_home localvg00 -wi-ao---- 20.00g lv_root localvg00 -wi-ao---- 11.00g lv_swap localvg00 -wi-ao---- 4.00g lv_tmp localvg00 -wi-ao---- 2.00g lv_usr localvg00 -wi-ao---- 8.00g lv_var localvg00 -wi-ao---- 34.00g sudo ls -lsh /var/lib/docker/devicemapper/devicemapper/data 2.3G -rw------- 1 root root 100G Mar 14 22:16 /var/lib/docker/devicemapper/devicemapper/data 

有人请让我知道如何做到这一点。

谢谢,

能够得到它的工作,并提到它

https://forums.docker.com/t/devmapper-space-issue/29786/3

出于几个原因,最好远离devicemapper。

devicemapper在环回不可恢复的存储问题: https : //github.com/docker/docker/issues/3182 “devicemapper不build议生产使用”。

我发现很容易切换到覆盖存储驱动程序,当然YMMV,但希望不会太多。 'rm -rf / var / lib / docker'在切换的时候是可选的,但是很容易,只要你可以加载你的图像,我会强烈推荐它。http://www.projectatomic.io/blog/2015/06 /笔记上,Fedora的,CentOS的,和泊坞窗存储的驱动程序/

 systemctl stop docker rm -rf /var/lib/docker # if these files do not already exist . . . create them, otherwise you need to edit by hand, you can also just add -s overlay in the systemctl docker script ls /etc/sysconfig/docker /etc/sysconfig/docker-storage [[ $? != 0 ]] && { echo OPTIONS='--selinux-enabled=false' > /etc/sysconfig/docker echo "DOCKER_STORAGE_OPTIONS= -s overlay" > /etc/sysconfig/docker-storage } systemctl start docker systemctl status docker docker images 

更多阅读: https : //docs.docker.com/engine/userguide/storagedriver/selectadriver/ https://integratedcode.us/2016/08/30/storage-drivers-in-docker-a-deep-dive/