为什么Docker图像吃掉了Docker没有使用的磁盘空间 [英] Why is docker image eating up my disk space that is not used by docker
问题描述
[root @ blink1 / ]#cat / etc / sysconfig / docker
#/ etc / sysconfig / docker
other_args = - H tcp://0.0.0.0:9367 -H unix:/// var /run/docker.sock -g / disk1 / docker
请注意, / disk / 1
正在使用完全不同的硬盘驱动器 / dev / xvdi
/ p>
使用的文件系统大小可用使用%安装在
/ dev / xvda1 7.8G 5.1G 2.6G 67%/
devtmpfs 1.9G 108K 1.9G 1%/ dev
tmpfs 1.9G 0 1.9G 0%/ dev / shm
/ dev / xvdi 20G 5.3G 15G 27%/ disk1
/ dev / dm-1 9.8G 1.7G 7.6G 18%/ disk1 / docker / devicemapper / mnt / bb6c540bae25aaf01aedf56ff61ffed8c6ae41aa9bd06122d440c6053e3486bf
/ dev / dm-2 9.8G 1.7G 7.7G 18%/ disk1 / docker / devicemapper / mnt / c85f756c59a5e1d260c3cdb473f3f4d9e55ac568967abe190ee af9c4087afeac
问题是,当我继续下载docker图像和运行docker容器时,似乎其他硬盘驱动器 / dev / xvda1
也用完了。
我可以验证通过删除一些docker图像的问题。在我删除了一些码头图像之后,现在, / dev / xvda1
现在有更多的空间。
我的码头版本:
[root @ blink1 /]#docker info
容器:2
图像:42
存储驱动程序:devicemapper
池名称:docker-202:1-275421-pool
池块大小:64 Kb
数据文件:/ disk1 / docker / devicemapper / devicemapper / data
元数据文件:/ disk1 / docker / devicemapper / devicemapper / metadata
使用的数据空间:3054.4 Mb
数据空间总计:102400.0 Mb
元数据空间:4.7 Mb
元数据空间总计:2048.0 Mb
执行驱动程序:native-0.2
内核版本:3.14。 20-20.44.amzn1.x86_64
操作系统:Amazon Linux AMI 2014.09
这是devicemapper的一个内核问题,它会影响RedHat系列操作系统(RedHat,Fedora,CentOS和Amazon Linux)。删除的容器不会释放映射的磁盘空间。这意味着在受影响的操作系统上,您会在启动和重新启动容器时慢慢耗尽空间。
Docker项目知道这一点,内核应该是固定在上游( https://github.com/docker/docker/issues/3182 )。
解决方法是将Docker自己的卷写入(Docker吃掉你的磁盘空间)。这实际上并没有阻止它从吃空间,只是从它的系统的其他部分之后。
我的解决方案是卸载docker,然后删除它的所有文件,然后重新安装:
sudo yum remove docker
sudo rm -rf / var / lib / docker
sudo yum install docker
这让我的空间恢复了,但与启动替换实例。我没有找到更好的解决方案。
I have setup docker and I have used completely different block device to store docker's system data:
[root@blink1 /]# cat /etc/sysconfig/docker
# /etc/sysconfig/docker
other_args="-H tcp://0.0.0.0:9367 -H unix:///var/run/docker.sock -g /disk1/docker"
Note that /disk/1
is using a completely different hard drive /dev/xvdi
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 5.1G 2.6G 67% /
devtmpfs 1.9G 108K 1.9G 1% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/xvdi 20G 5.3G 15G 27% /disk1
/dev/dm-1 9.8G 1.7G 7.6G 18% /disk1/docker/devicemapper/mnt/bb6c540bae25aaf01aedf56ff61ffed8c6ae41aa9bd06122d440c6053e3486bf
/dev/dm-2 9.8G 1.7G 7.7G 18% /disk1/docker/devicemapper/mnt/c85f756c59a5e1d260c3cdb473f3f4d9e55ac568967abe190eeaf9c4087afeac
The problem is that when I continue download docker images and run docker containers, it seems that the other hard drive /dev/xvda1
is also used up.
I can verify this problem by remove some docker images. After I removed some docker images, /dev/xvda1
has some more extra space now.
Am I missing something?
My docker version:
[root@blink1 /]# docker info
Containers: 2
Images: 42
Storage Driver: devicemapper
Pool Name: docker-202:1-275421-pool
Pool Blocksize: 64 Kb
Data file: /disk1/docker/devicemapper/devicemapper/data
Metadata file: /disk1/docker/devicemapper/devicemapper/metadata
Data Space Used: 3054.4 Mb
Data Space Total: 102400.0 Mb
Metadata Space Used: 4.7 Mb
Metadata Space Total: 2048.0 Mb
Execution Driver: native-0.2
Kernel Version: 3.14.20-20.44.amzn1.x86_64
Operating System: Amazon Linux AMI 2014.09
It's a kernel problem with devicemapper, which affects the RedHat family of OS (RedHat, Fedora, CentOS, and Amazon Linux). Deleted containers don't free up mapped disk space. This means that on the affected OSs you'll slowly run out of space as you start and restart containers.
The Docker project is aware of this, and the kernel is supposedly fixed in upstream (https://github.com/docker/docker/issues/3182).
A work-around of sorts is to give Docker its own volume to write to ("When Docker eats up you disk space"). This doesn't actually stop it from eating space, just from taking down other parts of your system after it does.
My solution was to uninstall docker, then delete all its files, then reinstall:
sudo yum remove docker
sudo rm -rf /var/lib/docker
sudo yum install docker
This got my space back, but it's not much different than just launching a replacement instance. I have not found a nicer solution.
这篇关于为什么Docker图像吃掉了Docker没有使用的磁盘空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!