目录说明
/var/lib/docker/containers: 是 Docker 在 Linux 系统上默认存储容器信息的目录。在该目录下,每个运行的 Docker 容器都有一个单独的目录,以容器 ID 命名,其中包含有关该容器的元数据和日志文件。
具体来说,每个容器目录中通常包括以下文件和目录:
config.v2.json:包含该容器的配置信息,如运行时环境、挂载点等
hostname:该容器的主机名。
hosts:该容器的 hosts 文件。
resolv.conf:该容器的 DNS 配置文件。
log.*.json:该容器的日志文件。Docker 通过在主机上安装的日志驱动程序将容器的标准输出和标准错误输出写入这些文件中。
注意,Docker 默认情况下会保留容器的日志文件,即使容器已经停止或删除。这可能会占用大量磁盘空间,因此您可能需要定期清理这些日志文件,以便释放磁盘空间。可以使用 sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log 命令清空日志文件,或者使用工具如 logrotate 定期轮换和清理日志文件。
/var/lib/docker/overlay2:目录下存储着 Docker 容器的数据,包括容器文件系统的镜像和运行时数据。这个目录的日志通常存储在容器的日志文件中,而不是直接存储在该目录中。
如果您想要清理该目录中的数据,需要注意以下几点:
1.不要直接删除该目录中的文件,否则可能会导致容器无法正常运行。
2.在清理之前,应该先停止所有正在运行的 Docker 容器,以确保容器的数据已经写入磁盘并保存。
3.清理的时候应该小心谨慎,避免误删数据。
对于日志的清理,可以使用 Docker 自带的 docker system prune 命令来清理不再使用的镜像、容器、网络等资源,以及其它无用数据,包括一些旧的日志文件。
具体地,可以使用以下命令清理 Docker 中的无用数据,包括旧的日志文件:
sudo docker system prune --all --force --volumes
该命令会删除所有未被使用的镜像、容器、网络和卷,并且强制删除,包括卷数据和所有关联的日志文件。
需要注意的是,该命令会删除所有未使用的 Docker 资源,包括一些可能还有用的数据,因此在使用该命令时应该慎重考虑。如果您不确定是否要删除某些数据,可以先备份数据,然后再进行清理操作。
清理
查看docker 占用的
空间命令
docker system df
TYPE 列出了docker 使用磁盘的 4 种类型:
Images:所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。
Containers:运行的容器占用的空间,表示每个容器的读写层的空间。
Local Volumes:容器挂载本地数据卷的空间。
Build Cache:镜像构建过程中产生的缓存空间(只有在使用 BuildKit 时才有,Docker 18.09 以后可用)。
最后的 RECLAIMABLE 是可回收大小。
一键清理无用空间
docker system prune
清理docker日志,日志文件无法删除,我们对json文件内容进行赋空
1.进入/var/lib/docker/containers目录
2.执行du -ha命令查看当前目录占用空间大小
3.删除命令sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log,这个命令会将 Docker 容器的所有日志文件截断为零字节,即清空日志文件,但不会删除这些文件。