zoukankan      html  css  js  c++  java
  • Docker overlay2 清理 & 数据转移

    Docker overlay2 清理 & 数据转移

    2021-04-06 456点热度 2人点赞 0条评论

    今天项目的生产环境不稳定,登录到服务器上发现Docker的/var/lib/docker/overlay2目录将磁盘占用满了,导致程序分配不到内存。

    要判断是否占用满了磁盘,可以使用

    # 查看Docker系统位置
    docker info | grep 'Dir'
    
    # 查看文件占用信息
    du -sh /var/lib/docker/*
    
    # 查看Docker的磁盘使用情况
    docker system df

    从上面的信息发现docker并没有占满全部的磁盘,遂使用 du -sh 查看发现,overlay已经100%了。

    清理文件

    通过以上信息发现基本都是docker容器的占用。这时继续查看到底是什么占用如此巨大。经排查发现是容器内的应用生成了大量的日志。

    # 找出目录下大于30M的文件
    find * -type f -size +30M -print0 | xargs -0 du -sh
    
    # 批量删除日志文件
    find * -type f -size +30M -print0 | xargs -0 du -sh | grep '/diff/root/logs/csp/sentinel-record.log' | awk '{ print $2 }' | xargs rm -rf

    数据转移

    从目前的情况来看,docker默认将文件及其容器放置在了系统盘的挂载区内,这时我们需要将其挪至外挂磁盘上。

    数据转移前需要将已有的容器备份,因为我的程序在之前就将重要的容器挂载到了外部磁盘,所以这里略过。

    # 停止容器
    systemctl stop docker
    
    # 修改容器配置
    cat /etc/docker/daemon.json
    {
       "registry-mirrors": ["https://wkumpv63.mirror.aliyuncs.com"],
       "data-root": "/data/docker-data",
       "storage-driver": "overlay2"
    }
    
    # 启动容器
    systemctl start docker
    systemctl enable docker
  • 相关阅读:
    企业网络架构
    谷歌推出情境感知API
    Firebase远程更新应用
    黑盒测试
    单元测试
    代码性能分析
    代码静态检查
    PHP 使用正则匹配 去掉 URL 链接第三个斜杠后面的部分
    JQ 全选 反选 取消全选的方法
    织梦导航栏有特定样式用法
  • 原文地址:https://www.cnblogs.com/mouseleo/p/14979535.html
Copyright © 2011-2022 走看看