docker工人的磁盘空间比容器增长得更快

正在修改文件,大量添加和删除(leveldb)的Docker容器正在增加容器自身报告的磁盘使用,并最终耗尽所有磁盘。

这里是df的一个快照,第二个。 你会注意到,从主机的angular度来看,磁盘空间增加了很多(300M字节),但是容器自我报告的磁盘空间使用量只增加了17M字节。 随着这种情况继续,主机用完了磁盘。

Ubuntu股票14.04,Docker版本1.10.2,构buildc3959b1。

这里有一些类似修剪的问题吗?

root@9e7a93cbcb02:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/docker-202:1-136171-d4[...] 9.8G 667M 8.6G 8% / tmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/disk/by-uuid/0a76513a-37fc-43df-9833-34f8f9598ada 7.8G 2.9G 4.5G 39% /etc/hosts shm 64M 0 64M 0% /dev/shm 

后来:

  root@9e7a93cbcb02:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/docker-202:1-136171-d4[...] 9.8G 684M 8.6G 8% / tmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/disk/by-uuid/0a76513a-37fc-43df-9833-34f8f9598ada 7.8G 3.2G 4.2G 43% /etc/hosts shm 64M 0 64M 0% /dev/shm 

发生这种情况是因为内核错误修复尚未传播到许多主stream操作系统发行版。 对于新手Docker用户来说,天真地启动默认的Amazon AMI上的docker是非常糟糕的。

坚持CoreOS稳定,你不会有这个问题。 我和CoreOS没有任何联系,坦率地说我们不得不面对另一个发行版。 在CoreOS发行版或其他正常工作的Linux内核中,容器和主机的磁盘空间会在容器释放或使用空间时正确地相互上下跟踪。 我会注意到,OSX或其他虚拟盒子发行版使用CoreOS,因此正常工作。

这是一个非常类似的问题 ,但是根本原因是devicemapper中的trim / discard问题。 您需要一个相当新的Linux内核版本才能正确处理这个问题。 我甚至会说,除非你有正确的Linux内核,否则Docker不适合使用。 请参阅该文章,以获取有关您的发行版使用哪个版本的讨论。

请注意,上面的文章只涉及Docker容器和图像的pipe理,但AFAICT也会影响容器在正常添加/删除文件或块时释放磁盘空间的尝试。

请注意您的云提供商用于云容器pipe理的发行版。