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

推荐订阅源

美团技术团队
P
Privacy International News Feed
P
Proofpoint News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
C
CXSECURITY Database RSS Feed - CXSecurity.com
Know Your Adversary
Know Your Adversary
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
NISL@THU
NISL@THU
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
GbyAI
GbyAI
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Y
Y Combinator Blog
C
CERT Recently Published Vulnerability Notes
N
Netflix TechBlog - Medium
S
Security Affairs
Spread Privacy
Spread Privacy
罗磊的独立博客
腾讯CDC
MyScale Blog
MyScale Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
LINUX DO - 热门话题
The Cloudflare Blog
L
LangChain Blog
博客园_首页
H
Hacker News: Front Page
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
博客园 - 聂微东
SecWiki News
SecWiki News
A
Arctic Wolf
爱范儿
爱范儿
Google Online Security Blog
Google Online Security Blog
T
Threat Research - Cisco Blogs
Hacker News - Newest:
Hacker News - Newest: "LLM"
有赞技术团队
有赞技术团队
The GitHub Blog
The GitHub Blog
Cyberwarzone
Cyberwarzone
博客园 - 叶小钗
V
Visual Studio Blog
V
V2EX
T
Tailwind CSS Blog
Project Zero
Project Zero
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
MongoDB | Blog
MongoDB | Blog
D
Docker

博客园 - 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