Docker overlay2 占用磁盘空间

Jan*_*lka 5 daemon docker server docker-compose hyperledger-fabric

下面是在 Ubuntu Linux 18.04 LTS 上的overlay2 占用磁盘空间的文件系统

服务器磁盘空间 125GB

overlay         124G  6.0G  113G   6% /var/lib/docker/overlay2/9ac0eb938cd2a50bb87e8ed13605d3f09214fdd9c8967f18dfc3f9432701fea7/merged
overlay         124G  6.0G  113G   6% /var/lib/docker/overlay2/397b099799212060ee7a4718660aa13aba8aa1fbb92f4d88d86fbad94e572847/merged
shm              64M     0   64M   0% /var/lib/docker/containers/7ffb129016d187a61a31c33f9e468b98d0ac7ab1771b87631f6caade5b84adc6/mounts/shm
overlay         124G  6.0G  113G   6% /var/lib/docker/overlay2/df7c4acee73f7aa2536d2a8929a48241bc8e92a5f7b9cb63ab70cea731b52cec/merged
Run Code Online (Sandbox Code Playgroud)

Jan*_*lka 12

如果上述方法不起作用,另一个解决方案是设置日志轮换。

nano /etc/docker/daemon.json
Run Code Online (Sandbox Code Playgroud)

如果没有找到

cat > daemon.json
Run Code Online (Sandbox Code Playgroud)

将以下行添加到文件中:

{
"log-driver": "json-file",
"log-opts": {
    "max-size": "10m",    
    "max-file": "3"    
    }
}
Run Code Online (Sandbox Code Playgroud)

重新启动 docker 守护进程:systemctl restart docker

请参阅:如何设置安装后日志轮换


Nic*_*k M 8

如果其他人遇到这种情况,则会发生以下情况:

您的容器可能正在将数据(日志、可部署文件、下载...)写入其本地文件系统,并且overlay2将在每个追加/创建/删除上创建一个差异,因此容器的文件系统将不断增长,直到填满本地文件系统上的所有可用空间。主持人。

有一些不需要更改存储驱动程序的解决方法:

  1. 首先,确保容器保存的数据可能会被丢弃(您可能不想删除数据库或类似的内容)

  2. 定期停止容器,修剪系统docker system prune并重新启动容器

  3. 确保容器不会写入其本地文件系统,但如果不能:

  4. 将容器写入的任何目录替换为卷或挂载。


Jan*_*lka -1

如果您的服务器是 Linux Ubuntu 18.04 LTS,请按照以下步骤操作(也应该适用于其他服务器)

Overlay2 的 Docker 信息

Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Run Code Online (Sandbox Code Playgroud)

如果输入 df -h --total 时看到以下几行

19M /var/lib/docker/overlay2/00d82017328c49c661c78ce14550c4073c50a550fe5004911bd3488b085aea76/diff
5.9M /var/lib/docker/overlay2/00e3e4fa0cbff7c242c38cfc9501ef1a523158d69b50779e08a773e7e22a01f1/diff
44M /var/lib/docker/overlay2/0e8e7e893b2c8aa17b4875d421670e058e4d97de066c970bbeab6cba566a44ba/diff
28K /var/lib/docker/overlay2/12a4c4e4877d35e9db657e4acff32e513042cb44119cca5c43fc19ad81c3915f/diff
............
............
Run Code Online (Sandbox Code Playgroud)

然后进行如下更改:

第一站码头工人:sudo systemctl stop docker

下一步:到达路径/etc/docker

daemon.json如果没有找到则检查文件

猫 > daemon.json

并在里面输入以下内容:

{
  "storage-driver": "aufs"
}
Run Code Online (Sandbox Code Playgroud)

并关闭

最后重新启动docker:sudo systemctl start docker

检查是否已进行更改:

Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 0
Dirperm1 Supported: true
Run Code Online (Sandbox Code Playgroud)

更改文件系统可以帮助您解决此问题。

请检查您的 docker 版本是否支持aufs

请务必在此处检查 Linux 发行版以及支持哪些存储驱动程序:

  • 如今这是个糟糕的建议。AuFS 已于 19.03 弃用 (7认同)