【举栗子】Docker 容器磁盘占满的几种情况 | CSDN博文精选

戳蓝字“CSDN云计算”关注我们哦!
640?wx_fmt=jpeg
作者 |  isea533
转自 | CSDN博客
责编 | 阿秃

参考文档:
https://docs.docker.com/engine/reference/commandline/dockerd/
应用日志过多

默认情况下,每个 Docker 容器都有 10G 的存储空间,当超出该大小时,容器就会出现问题。

可以参考官方文档 dm.basesize 参数的说明来修改默认的容器大小:

指定创建基本设备时要使用的大小,这会限制图像和容器的大小。默认值为10G。请注意,精简设备本质上是“稀疏的”,因此大多数空的10G设备不会在池上使用10 GB的空间。但是,文件系统将为空盒使用更多空间,设备越大。

可以在守护进程重启时增加基本设备大小,这将允许所有未来的图像和容器(基于这些新图像)具有新的基本设备大小。

例子:

$ sudo dockerd --storage-opt dm.basesize=50G

这将使基本设备大小增加到50G。如果现有基本设备大小大于50G,Docker守护程序将抛出错误。用户可以使用此选项扩展基本设备大小,但不允许缩小。

此值会影响系统范围的“基本”空文件系统,该文件系统可能已被拉出的图像初始化和继承。通常,更改此值需要执行其他步骤:

$ sudo service docker stop$ sudo rm -rf /var/lib/docker$ sudo service docker start

我在这里遇到的问题是因为某个模块会在 10 分钟内输出 1G 的日志,修改日志策略后可以解决该问题。

Dockerd 日志过多

有一个 GitLab 的 docker 服务,运行几个月后就会出现无法 push 和 pull 的情况,原因都是因为 /var/lib/docker 磁盘空间已满导致的。而导致磁盘空间占满的原因是因为 dockerd 的日志占用了十几G的空间导致的。

日志文件的路径形如:	
/var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log

参考:https://stackoverflow.com/questions/31829587/docker-container-logs-taking-all-my-disk-space

可以参考如下几种解决方案:

1. 启动容器参数

参考:https://docs.docker.com/engine/reference/commandline/run/
使用 --log-opt Log driver options 配置日志策略。
例如:--log-opt max-size=50m。

2. 全局默认配置

在 daemon.json 中配置,linux 中默认位置为 /etc/docker。

配置示例:
{	"log-driver": "json-file",	"log-opts": {	"max-size": "10m",	"max-file": "3",	"labels": "production_status",	"env": "os,customer"	}	
}

日志配置参考:	
https://docs.docker.com/config/containers/logging/configure/

完整daemon.json 示例参考:https://docs.docker.com/engine/reference/commandline/dockerd/

{	"authorization-plugins": [],	"data-root": "",	"dns": [],	"dns-opts": [],	"dns-search": [],	"exec-opts": [],	"exec-root": "",	"experimental": false,	"features": {},	"storage-driver": "",	"storage-opts": [],	"labels": [],	"live-restore": true,	"log-driver": "json-file",	"log-opts": {	"max-size": "10m",	"max-file":"5",	"labels": "somelabel",	"env": "os,customer"	},	"mtu": 0,	"pidfile": "",	"cluster-store": "",	"cluster-store-opts": {},	"cluster-advertise": "",	"max-concurrent-downloads": 3,	"max-concurrent-uploads": 5,	"default-shm-size": "64M",	"shutdown-timeout": 15,	"debug": true,	"hosts": [],	"log-level": "",	"tls": true,	"tlsverify": true,	"tlscacert": "",	"tlscert": "",	"tlskey": "",	"swarm-default-advertise-addr": "",	"api-cors-header": "",	"selinux-enabled": false,	"userns-remap": "",	"group": "",	"cgroup-parent": "",	"default-ulimits": {	"nofile": {	"Name": "nofile",	"Hard": 64000,	"Soft": 64000	}	},	"init": false,	"init-path": "/usr/libexec/docker-init",	"ipv6": false,	"iptables": false,	"ip-forward": false,	"ip-masq": false,	"userland-proxy": false,	"userland-proxy-path": "/usr/libexec/docker-proxy",	"ip": "0.0.0.0",	"bridge": "",	"bip": "",	"fixed-cidr": "",	"fixed-cidr-v6": "",	"default-gateway": "",	"default-gateway-v6": "",	"icc": false,	"raw-logs": false,	"allow-nondistributable-artifacts": [],	"registry-mirrors": [],	"seccomp-profile": "",	"insecure-registries": [],	"no-new-privileges": false,	"default-runtime": "runc",	"oom-score-adjust": -500,	"node-generic-resources": ["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"],	"runtimes": {	"cc-runtime": {	"path": "/usr/bin/cc-runtime"	},	"custom": {	"path": "/usr/local/bin/my-runc-replacement",	"runtimeArgs": [	"--debug"	]	}	},	"default-address-pools":[{"base":"172.80.0.0/16","size":24},	{"base":"172.90.0.0/16","size":24}]	
}

配置参数后需要重启 docker 服务。

docker-compose 配置参考:	
https://docs.docker.com/compose/compose-file/compose-file-v2/

配置示例:

logging:	options:	max-size: '12m'	max-file: '5'	driver: json-file

640?wx_fmt=png

???扫描下方二维码,阅读原文哟。

640?wx_fmt=jpeg

福利
扫描添加小编微信,备注“姓名+公司职位”,入驻【CSDN博客】,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

640?wx_fmt=jpeg

推荐阅读:






真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux Shell脚本专栏_批量检测网站是否异常脚本_08

文章目录1. 脚本制作2. 运行脚本3. 脚本进化动态参数传递4. 运行脚本5. 脚本分解1. 脚本制作 #!/bin/bash URL_LIST$ for URL in $URL_LIST; doFAIL_COUNT0for ((i1;i<3;i)); doHTTP_CODE$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)i…

下一代智能数据工厂,阿里云发布全新DataWorks

大数据的开发能力已经成为企业的核心竞争力之一, 企业对数据资产的管理、加工、利用的诉求也越来越强烈。 9月5日,阿里云发布了DataWorks V2版本, 可提升数据开发的效率并简化数据操作&#xff0c;为企业提供了安全可靠的一站式大数据智能云研发平台。 众所周知&#xff0c;企…

MaxCompute 项目空间内的访问控制和权限管理

项目空间内的访问控制分为以下五类&#xff1a; 用户管理ACL授权Policy授权角色管理基于标签的访问控制管理 用户管理 任意非项目空间Owner用户必须被加入MaxCompute项目空间中&#xff0c;并被授予相对应权限&#xff0c;方能操作MaxCompute中的数据、作业、资源及函数。示例…

mysql 中间点策略_网易MySQL中间件的负载均衡策略及性能优化

团队介绍网易乐得DBA组&#xff0c;负责网易乐得电商、网易邮箱、网易技术部数据库日常运维&#xff0c;负责数据库私有云平台的开发和维护&#xff0c;负责数据库及数据库中间件Cetus的开发和测试等等。一、背景随着业务的爆发式增长&#xff0c;电商系统中的读写压力越来越高…

华为与美国公司就授权5G平台展开初期谈判;Linux 中存在严重漏洞;Microsoft 发布 Cosmos DB GA 版……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周两次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go iPhone12 概念图&#xff08…

Bellman_Ford算法总结

知识概览 Bellman_Ford算法适合解决存在负权边的最短路问题&#xff0c;时间复杂度为O(nm)。在存在负权边的最短路问题中&#xff0c;Bellman_Ford算法的效率虽然不如SPFA算法&#xff0c;但是Bellman_Ford算法能解决SPFA算法不能解决的经过不超过k条边的最短路问题。 例题展示…

Linux Shell脚本专栏_批量主机远程执行命令脚本_08

文章目录1. 安装expect2. 脚本制作3. 赋予权限4. 运行脚本5. 直接运行脚本6. vmstat测试1. 安装expect [rootlocalhost ~]# yum install expect Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyu…

打破行业壁垒!阿里云OpenSearch开启个性化搜索里程碑

随着业务的高速发展&#xff0c;越来越多的客户对于搜索带来的实际转化和分发效率有了越来越高的要求。尤其在电商、资讯等行业&#xff0c;这一目标极其重要。 阿里云OpenSearch是面向全行业的搜索引擎解决方案&#xff0c;然而不同领域和业务场景的搜索需求复杂性导致当前单…

java collections_扫盲java.util.Collections工具包,学习排序、二分、洗牌、旋转算法

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01; 一、前言算法是数据结构的灵魂&#xff01;好的算法搭配上合适的数据结构&#xff0c;可以让代码功能大大的提升效率。当然&#xff0c;算法学习…

php获取mysql所有表_PHP获取MySQL数据库里所有表的实现代码

代码如下&#xff1a;function list_tables($database){$rs mysql_list_tables($database)&#xff1b;$tables array()&#xff1b;while ($row mysql_fetch_row($rs)) {$tables[] $row[0];}mysql_free_result($rs)&#xff1b;return $tables;}但由于mysql_list_tables方…

如何进行MaxCompute 用户认证?

您可以通过以下两种方式进行用户认证。 检查请求Request发送者的真实身份 即请求发送后&#xff0c;参数包括用户名和密码&#xff0c;服务端会验证用户名和密码是否正确&#xff0c;以此判断Request发送者的身份是否可信。 使用此方法有可能在请求时间较长的情况下&#xf…

Linux Shell脚本专栏_MySQL数据库备份_09

文章目录一、MySQL数据库备份单循环1. 安装mysql2. 配置mysql环境变量3. 刷新环境变量4. 创建数据库和表lue5. 脚本制作6. 运行脚本7. 查看备份的sql文件7. 脚本升级动态传参8. 运行脚本9. 查看备份的sql文件二、MySQL数据库表备份多循环2.1. 脚本制作2.2. 运行脚本2.3. 指定目…

【当头棒喝】你是真的了解云计算吗?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 全球物联网观察责编 | 阿秃对于“云计算”这个名词&#xff0c;大家早已耳熟能详&#xff0c;而且出场率越来越高&#xff01;但对于很多新入行的“小白”来说&#xff0c;其中涉及的各种概念可能令人毫无头绪&#xff0c;这…

专注数据,打造阿里云Elasticsearch“一站式”数据服务体系

众所周知&#xff0c;Elasticsearch的问世使得各种结构、非结构数据得以实现实时搜索、分析的可能&#xff0c;越来越多的用户使用ES集群&#xff08;即Elasticseach集群&#xff0c;下文均简称ES集群&#xff09;实现数据的升值与挖掘。而用户在开发的过程中总是面临数据导入、…

java8 lambda maplist排序_「java8系列」流式编程Stream

前言「Java8系列」神秘的Lambda「Java8系列」神奇的函数式接口继上两篇之后&#xff0c;本文已经java8系列的第三篇了。本篇文章比较长&#xff0c;但我希望大家都能认真读完。读不完可以先收藏&#xff0c;在找时间读。没看过前两篇的可以点上边的链接看看&#xff0c;前两篇文…

Centos7 下载、安装、配置、启动部署

文章目录1. 下载tomcat2. 解压tomcat3. 重命名tomcat4. 配置tomcat环境变量5. 刷新配置文件6. 启动tomcat1. 下载tomcat wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz2. 解压tomcat [rootly-01 ~]# tar -zxf apache-tomca…

java构造方法 this_Java中的构造方法this、super的用法详解

1、构造方法定义&#xff1a;与类同名没有返回值的方法称为构造方法&#xff1b;public class test1 {private String name;private int age;public test1(){}}上面的test1()是默认构造方法&#xff0c;即使没有定义java虚拟机在运行的时候也会自动生成&#xff0c;当然如果定义…

世界杯千万级直播高稳定的挑战和实践

今年夏天&#xff0c;俄罗斯世界杯召开。在刚刚落幕的重庆云栖飞天技术汇专场中&#xff0c;阿里视频云技术专家裘良科&#xff0c;就世界杯这个话题&#xff0c;跟参会嘉宾一起探讨了千万级直播高稳定的挑战和相关实践&#xff0c;本文为演讲全文。 2018年俄罗斯世界杯从6月14…

会议邀请 | 10月25日北京,首期D2iQ云原生主题论坛正式启动

在开始今天的内容之前&#xff0c;先问大家一个问题&#xff1a;云原生究竟是什么&#xff1f; 一般来说&#xff0c;“云原生”是一种构建和运行应用程序的方法&#xff0c;它利用了云计算交付模型的优势。CNCF&#xff08;云原生计算基金会&#xff09;将“云原生”定义为使…

Flutter快速上车之Widget

Flutter作为一种全新的响应式&#xff0c;跨平台&#xff0c;高性能的移动开发框架。从开源以来&#xff0c;已经得到越来越多开发者的喜爱。闲鱼是最早一批与谷歌展开合作&#xff0c;并在重要的商品详情页中使用上线的公司。一路走来&#xff0c;积累了大量的开发经验。虽然越…