如何在/ var / lib / docker / overlay2 / hash / merged上防止和回收Docker EC2磁盘空间?

时间:2019-11-28 07:35:35

标签: docker amazon-ec2 containers

第一次部署后立即消耗13%。但是,几天后,它显着增加。

我正在使用4个docker容器

Filesystem      Size  Used Avail Use% Mounted on
/dev/fksdlk      7.8G  4.3G  3.4G  56% /
overlay         7.8G  4.3G  3.4G  56% /var/lib/docker/overlay2/hash/merged
shm              64M     0   64M   0% /var/lib/docker/containers/hash/shm
overlay         7.8G  4.3G  3.4G  56% /var/lib/docker/overlay2/hash/merged
shm              64M     0   64M   0% /var/lib/docker/containers/hash/shm
overlay         7.8G  4.3G  3.4G  56% /var/lib/docker/overlay2/hash/merged
shm              64M     0   64M   0% /var/lib/docker/containers/hash/shm
overlay         7.8G  4.3G  3.4G  56% /var/lib/docker/overlay2/hash/merged
shm              64M     0   64M   0% /var/lib/docker/containers/hash/shm

我使用docker system prune -a进行了清理,仍然是56%,但是当我们启动新的EC2时是12%

Filesystem Size Used Avail Use% Mounted on 
/dev/fksdlk 7.8G 882M 6.8G 12% / 

我有两个问题:

  1. 如何在不重新启动EC2实例的情况下回收此空间?
  2. 为什么要占用磁盘空间?

2 个答案:

答案 0 :(得分:0)

大小增加可能是因为您的容器向stdout写入了大量内容。

您无需重新启动实例,只需删除容器即可释放分配的存储。您也可以在删除容器后运行docker container prune,以确保您没有剩余的剩余内容。

答案 1 :(得分:0)

您正在为docker使用8 GB磁盘。如果您要运行包含JVM等的容器,那就不好了。建议您将data-root更改为另一个更大的磁盘位置。您必须在daemon.json中设置此属性,然后仅将其设置为systemctl daemon-reload。 Docker将自动将其数据复制到您的新位置。