解决docker占用系统根目录磁盘100%的问题
docker启动占用系统跟目录磁盘100%的问题前序在使用docker的过程中总会遇到某些头疼的问题。这不在最近一段时间内由于docker内的服务和服务访问频率越来越多,系统根目录磁盘直接达到100%,导致容器服务强制停止或不能正常访问,按照之前的解决方案,定时清除docker容器内所产生的日志,但时间不久根目录磁盘紧紧逼近99%,下面就给大家分享解决方案。系统版本和docker版本...
·
解决docker占用系统根目录磁盘100%的问题
前序
在使用docker的过程中总会遇到某些头疼的问题。这不在最近一段时间内由于docker内的服务和服务访问频率越来越多,系统根目录磁盘直接达到100%,导致容器服务强制停止或不能正常访问,按照之前的解决方案,定时清除docker容器内所产生的日志,但时间不久根目录磁盘紧紧逼近99%,下面就给大家分享解决方案。
系统版本和docker版本
名称 | 版本号 |
---|---|
CentOS | 7.6.1810 |
Docker | 18.09.6 |
解决方案
方案一
- df -hl查看分区空间的占用,发现/dev/mapper/centos-root已经满载
- 停止所有的容器服务
docker stop $(docker ps -q) - 停止docker服务
systemctl stop docker - 在/usr/lib/systemd/system/docker.service服务文件ExecStart中的添加–data-root=/home/.docker-data,如下图,–data-root在官网中解释为docker数据目录,当没有配置此参数时默认路径为/var/lib/docker,可通过dockerd --help查看命令详情
注意:(当使用低版本的docker是并没有–data-root参数,请在文章最后查看解决方案)
- 拷贝原docker数据/var/lib/docker到所配置–data-root的目录下
cp -r /var/lib/docker /home/.docker-data - 重新启动docker服务,并查看docker服务状态,查看添加的配置是否生效
systemctl daemon-reload
systemctl start docker
systemctl status docker
- 启动所有docker容器服务
docker start $(docker ps -a -q) - 当所有服务正常后,删除原/var/lib/docker释放/dev/mapper/centos-root分区空间
rm -rf /var/lib/docker - 再次查看分区磁盘占用df -hl,已成功释放空间
方案二 (同样可以适用高版本docker)
当使用低版本的docker时,并没有–data-root指定,所以方案二提供软连接形式来解决该问题
- 依旧先停止容器服务和docker服务
- 直接移动/var/lib/docker至/home/.docker-data
cp -r /var/lib/docker /home/.docker-data - 删除/var/lib/docker
rm -rf /var/lib/docker - 创建软连接
ln -s /home/.docker-data /var/lib/docker - 启动docker服务和容器服务
- 查看分区占用
后记
以上就是全部的解决步骤,欢迎借鉴,如有不足请多多指教
更多推荐
已为社区贡献1条内容
所有评论(0)