「linux」docker日志设置清理
一、常用命令
环境:
前言:docker容器在启动的那一刻就开始产生日志,docker产生的日志文件默认是”json-file”的形式存储。该日志文件在启动的容器目录下,命名规则—>[容器ID]-json.log ,docker默认的目录在 /var/lib/docker
假设:我启动了一个容器,容器的ID为:0117e9d5abdf9a23c7cc9d189eed64e2f2021d4d8887fb3a9b7842c18e043337
那我的日志文件名字就是:0117e9d5abdf9a23c7cc9d189eed64e2f2021d4d8887fb3a9b7842c18e043337-json.log
文件就在容器目录的文件夹下面:/var/lib/docker/containers/0117e9d5abdf9a23c7cc9d189eed64e2f2021d4d8887fb3a9b7842c18e043337
1.查看docker存储使用情况
命令:
1 |
|
名词解释:
TYPE(类型) TOTAL(总数)ACTIVE(活跃数)SIZE(占用空间)RECLAIMABLE(可回收的大小)
Images(镜像) 总共18个 活跃17个 大小3.33GB 可以回收的大小244.1MB(占总镜像的比重7%)
Containers(容器) 。。。。。。
Local Volumes(本地使用的卷) 。。。。。。
Build Cache(编译时的缓存) 。。。。。。
2.查看docker日志文件大小
1 |
|
3.清理docker容器日志
注:容器正在运行,如果使用rm -rf方式删除日志后,通过df -h会发现磁盘空间并没有释放。原因是Linux或者Unix系统中,通过rm -rf或者文件管理器删除文件,将会从文件系统的目录结构上解除关联的链接。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。正确方式是cat /dev/null > *-json.log,也可以通过rm -rf删除容器后重启容器。
清理日志shell脚本:/ 脚本有错误
1 |
|
注:使用root权限执行该脚本
以上的这种方式只是临时的,下次容器启动后还是一样会出现日志文件过大的情况
4.优化docker容器日志配置
a. 全局修改配置
编辑 /etc/docker/daemon.json 配置文件
1 |
|
1 |
|
log-driver ==> 容器收集日志的方式,将日志以JSON文件的方式存储
log-opts ==> 日志配置max-size ==> 一个日志文件容量的上限
max-file ==> 最多可产生多少个文件
重启docker使配置生效
1 |
|
b. docker-compose.yml 单个容器配置
1 |
|