惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
Y
Y Combinator Blog
博客园 - Franky
D
Docker
B
Blog RSS Feed
M
MIT News - Artificial intelligence
雷峰网
雷峰网
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
B
Blog
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
Vercel News
Vercel News
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News

jobcher on 打工人日志

2023-12-21 打工人日报 2023-12-20 打工人日报 2023-12-19 打工人日报 2023-12-18 打工人日报 2023-12-17 打工人日报 2023-12-16 打工人日报 2023-12-15 打工人日报 2023-12-14 打工人日报 2023-12-13 打工人日报 2023-12-12 打工人日报 2023-12-11 打工人日报 2023-12-10 打工人日报 2023-12-09 打工人日报 2023-12-08 打工人日报 2023-12-07 打工人日报 2023-12-06 打工人日报 2023-12-05 打工人日报 2023-12-04 打工人日报 2023-12-03 打工人日报 2023-12-02 打工人日报 2023-12-01 打工人日报 2023-11-30 打工人日报 2023-11-29 打工人日报 2023-11-28 打工人日报 2023-11-27 打工人日报 2023-11-26 打工人日报 2023-11-25 打工人日报 2023-11-24 打工人日报 2023-11-23 打工人日报 2023-11-22 打工人日报
清理Docker容器日志
2022-09-19 · via jobcher on 打工人日志

清理 Docker 容器日志

如果 docker 容器正在运行,那么使用rm -rf方式删除日志后,通过df -h会发现磁盘空间并没有释放。原因是在 Linux 或者 Unix 系统中,通过rm -rf或者文件管理器删除文件,将会从文件系统的目录结构上解除链接(unlink)。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。正确姿势是cat /dev/null > *-json.log,当然你也可以通过rm -rf删除后重启 docker。

日志清理脚本 clean_docker_log.sh

 1#!/bin/sh
 2
 3echo "======== start clean docker containers logs ========"
 4
 5logs=$(find /var/lib/docker/containers/ -name *-json.log)
 6
 7for log in $logs
 8        do
 9                echo "clean logs : $log"
10                cat /dev/null > $log
11        done
12
13echo "======== end clean docker containers logs ========"

chmod +x clean_docker_log.sh && ./clean_docker_log.sh

设置 Docker 容器日志大小

设置一个容器服务的日志大小上限
上述方法,日志文件迟早又会涨回来。要从根本上解决问题,需要限制容器服务的日志大小上限。这个通过配置容器docker-composemax-size选项来实现

1nginx:
2  image: nginx:1.12.1
3  restart: always
4  logging:
5    driver: “json-file”
6    options:
7      max-size: “5g”

全局设置

新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirverlog-opts参数

1# vim /etc/docker/daemon.json
2
3{
4
5  "log-driver":"json-file",
6  "log-opts": {"max-size":"500m", "max-file":"3"}
7}

max-size=500m,意味着一个容器日志大小上限是500M
max-file=3,意味着一个容器有三个日志,分别是id+.jsonid+1.jsonid+2.json

注意:设置的日志大小,只对新建的容器有效。