场景描述:

1. 服务器运行一段时间后,发现系统盘磁盘空间在不断增加,一开始的时候,不会影响系统,随着时间的推移,磁盘空间在不断增加,直到有一天你会发现系统盘剩余空间即将使用完,值得庆幸的是,如果您使用的云服务器,那么服务器支持资源动态扩容,但是如果是物理服务器,那么就要及时处理该问题了;不过话说回来,即便是云服务器支持在线磁盘空间扩容,这样的异常问题,也应及时处理,总不能,一到磁盘空间满的时候,就去扩容。
处理思路:
    先以正常的问题定位思路来:(后续知道原理,可直接定位,命令如下: )
容器日志一般存放在/var/lib/docker下面,可使用如下命令root用户下,直接查看各个容器日志的文件大小
ls -lh $(find /var/lib/docker/containers/ -name *-json.log) 
 1. 远程连接服务器,以root用户登录
 查看磁盘空间大小
初步可以定位是/var/lib/docker下的文件占用空间较大:
 进入containers目录:
查看运行中的容器:
可以确定是odoo容器:
 
基本可以定位到该日志文件,然后在业务不忙的时候,考虑将该日志文件内容清空,释放空间。
注意,这里不能直接用rm-rf 删除该文件,因为:
如果docker容器正在运行,那么使用rm -rf方式删除日志后,通过df -h会发现磁盘空间并没有释放。原因是在Linux或者Unix系统中,通过rm -rf或者文件管理器删除文件,将会从文件系统的目录结构上解除链接(unlink)。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。正确姿势是cat /dev/null > *-json.log,当然你也可以通过rm -rf删除后重启docker。
 
docker 设置日志文件大小及个数: https://blog.csdn.net/huangliuyu00/article/details/90384345
 
具体操作步骤: 
. 进入容器文件的存放目录 ,并查看某一个容器的文件大小
cd /var/lib/docker/containers
du -sh * . 进入某一个具体的容器比如:b55014b9120b8e67cdd54a1306452aa03395c71c6ff8ef5f3878a28a53772b67
du -sh * . 将日志文件清空
cat /dev/null>b55014b9120b8e67cdd54a1306452aa03395c71c6ff8ef5f3878a28a53772b67-json.log du -sh * . 查看磁盘最新磁盘空间:
df -h
  

运维笔记--Docker文件占用磁盘空间异常处理的更多相关文章

  1. Projects\Portal_Content\Indexer\CiFiles文件夹下文件占用磁盘空间过大问题。

    C:\Program Files\Microsoft Office Servers\12.0\Data\Office Server\Applications\9765757d-15ee-432c-94 ...

  2. 运维笔记--docker高效查看后台日志

    场景描述: 应用程序运行在 Docker环境中,经常使用的查看后台日志的命令是:docker attach 容器名该命令优点:实时输出:不足之处:日志大量输出的时候,屏幕一闪而过,不便于调试,并且有一 ...

  3. 运维笔记--docker odoo镜像 运行异常处理

    场景描述: 镜像来源,dockerhub odoo官方镜像:https://hub.docker.com/_/odoo odoo镜像运行一段时间后,出现下述异常,可能是触发某个未知bug:该现象在生产 ...

  4. 运维笔记--Docker环境ubuntu系统安装指定版本python[3.6]

    场景描述: 直接安装出现如下异常: root@ae2d02e458f3:/home# apt-get install python3.6 Reading package lists... Done B ...

  5. linux下使用 du查看某个文件或目录占用磁盘空间的大小

    du -ah --max-depth=1     这个是我想要的结果  a显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小但是由于用了--max-depth选项,表示显示目录下所有 ...

  6. Linux系统运维笔记(二),Linux文件编辑命令

    Linux系统运维笔记 Linux文件编辑命令 首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式 接下来我们按i,然后键盘随便输入写内容. 然后按ESC重新进入到命令 ...

  7. du查看某个文件或目录占用磁盘空间的大小

    一.du的功能:`du` reports the amount of disk space used by the specified files and for each subdirectory  ...

  8. [转帖]linux下使用 du查看某个文件或目录占用磁盘空间的大小

    linux下使用 du查看某个文件或目录占用磁盘空间的大小 du -ah --max-depth= 去年用过一次 后来忘记了.. 命令这个东西 熟能生巧.. https://www.cnblogs.c ...

  9. linux查找系统中占用磁盘空间最大的文件

    Q:下午有一客户磁盘空间占用很大,使用df查看磁盘剩余空间很小了,客户想知道是哪些文件占满了文件. Q1:在Linux下如何查看系统占用磁盘空间最大的文件? Q2:在Linux下如何让文件夹下的文件让 ...

随机推荐

  1. python统计两个字符串从首字符开始最大连续相同的字符数

    在python中统计两个字符串从首字符开始最大连续相同的字符数,函数如下: def get_num(s1, s2): num = 0 len_s1 = len(s1) list_s1 = [] for ...

  2. Linux程序在Windows下编译运行_MinGW和Cygwin

    linux要在windows下编译运行,需要win下的gcc编译器,一般有两种:MinGW和Cygwin. 但某些函数在windows没有,即使使用两种工具也编译不过,需要查询windows函数并使用 ...

  3. (三)Kubernetes 快速入门

    Kubernetes的核心对象 API Server提供了RESTful风格的编程接口,其管理的资源是Kubernetes API中的端点,用于存储某种API对象的集合,例如,内置Pod资源是包含了所 ...

  4. C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法

    每次忘记都去查,真难啊 /* C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法 */ /* vector常用用法 */ //头文件 #i ...

  5. 关于__int 128 的读入与输出

    inline __int128 read() { ,w=; ; while(!isdigit(ch)) {w|=ch=='-';ch=getchar();} )+(X<<)+(ch^),c ...

  6. 201671030120 王晶 实验十四 团队项目评审&课程学习总结

          项目 内容 课程名称 2016级计算机科学与工程学院软件工程(西北师范大学) 作业要求 实验十四 团队项目评审&课程学习总结 作业学习目标 (1)掌握软件项目评审会流程:(2)反思 ...

  7. 项目Beta冲刺(团队)——05.24(2/7)

    项目Beta冲刺(团队)--05.24(2/7) 格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺(团队) 团队名称:为了交项目干杯 作业目标:记录Beta敏捷冲刺第2 ...

  8. python基础知识笔记-集合

    集合使用花括号将元素之间用逗号隔开即可.集合的输出里不会出现相同的元素.集合中有并集.交集.差集等,以下为一些简单的表达: def main(): list1=[1,1,2,2,3,3] print( ...

  9. MySQL 8.x 函数和操作符,官方网址:https://dev.mysql.com/doc/refman/8.0/en/functions.html

    MySql 8.x 函数和操作符,官方网址:https://dev.mysql.com/doc/refman/8.0/en/functions.html

  10. dart 中的 try on catch

    catch 捕获异常 捕获了一个异常后,就停止了捕获异常过程.捕获一个异常,你就有机会去处理它: try { breedMoreLlamas(); } on OutOfLlamasException ...