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

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
L
LINUX DO - 最新话题
Help Net Security
Help Net Security
N
News | PayPal Newsroom
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
S
Security @ Cisco Blogs
W
WeLiveSecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
Webroot Blog
Webroot Blog
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tor Project blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
PCI Perspectives
PCI Perspectives
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
S
SegmentFault 最新的问题
J
Java Code Geeks
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 【当耐特】
博客园_首页
H
Hacker News: Front Page
T
Threatpost
Jina AI
Jina AI
博客园 - Franky
月光博客
月光博客
L
LINUX DO - 热门话题
The Cloudflare Blog
H
Heimdal Security Blog
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
Cloudbric
Cloudbric
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
S
Secure Thoughts
T
Tenable Blog
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - wintersoft

加入mapstruct后出现 找不到符号 符号: 方法 setXX 的解决方法 prometheus安装(docker) 在Github或Gitee上用hexo搭建个人博客 jenkins更新为国内源 让sentinel-dashboard的流控配置持久化到nacos Yarn和Zookeeper的区别 360关闭系统服务导致开机鼠标需重拔插才用的问题 flink安装启动(docker) jenkins安装启动(docker) arthas安装进docker kafka安装运行(docker) docker port is already allocated 的解决方案 docker删除名称为<none>的镜像 VS Code中python代码自动格式化 代码自动检查 vs code搭建python和tensorflow环境 安装tensorflow-gpu2.0(windows) 安装anaconda和tensorflow(windows) sentinel-dashboard安装、运行(docker) nacos-server安装、运行 (docker)
解决docker容器日志导致主机磁盘空间满了的情况
wintersoft · 2019-11-27 · via 博客园 - wintersoft

日志文件在   /var/lib/docker/containers/<docker_container_id>/   目录下


查看日志大小

vim /opt/docker_log_size.sh

#!/bin/sh

echo "======== docker containers logs file size ========"  

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
        do  
             ls -lh $log   
        done  

chmod +x /opt/docker_log_size.sh

/opt/docker_log_size.sh


删除日志

通过上面的脚本找到占用空间大的日志,复制出日志路径
清空日志
cat /dev/null > <docker_container_id>-json.log


清空所有日志的脚本

vim /opt/clean_docker_log.sh

#!/bin/sh 

echo "======== start clean docker containers logs ========"  

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
        do  
                echo "clean logs : $log"  
                cat /dev/null > $log  
        done  

echo "======== end clean docker containers logs ========"  

chmod +x /opt/clean_docker_log.sh

/opt/clean_docker_log.sh


上述方法,日志文件迟早又会涨回来。
下面从根本上解决问题。


设置Docker容器日志大小

设置一个容器服务的日志大小上限

以nginx为例

nginx: 
  image: nginx:latest
  restart: always 
  logging: 
    driver: "json-file" 
    options: 
      max-size: "5g"

重启nginx容器之后,其日志文件的大小就被限制在5GB


全局设置

新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:
vim /etc/docker/daemon.json

{
        "registry-mirrors": ["https://registry.docker-cn.com"],
        "live-restore": true,
        "log-driver":"json-file",
        "log-opts": {"max-size":"500m", "max-file":"1"}
}

max-size=500m,意味着一个容器日志大小上限是500M, 

max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

// 重启docker守护进程
systemctl daemon-reload
systemctl restart docker

参考:https://my.oschina.net/u/2289161/blog/1931390