Linux查看磁盘空间使用状态以及docker空间清理

Linux查看磁盘空间使用状态以及docker空间清理

2019-07-26 / 2 评论 / 1,897 阅读 / 正在检测是否收录...

查看Linux系统的文件系统使用情况

df -h

查询各个目录或者文件占用空间的情况

du -sh *|sort -h
du -h --max-depth=1

查看docker磁盘使用情况

du -hs /var/lib/docker/

查看Docker的磁盘使用情况

docker system df

清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)

docker system prune
清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉
docker system prune -a

清理容器日志

docker inspect <容器名> | grep LogPath | cut -d ':' -f 2 | cut -d ',' -f 1 | xargs echo | xargs truncate -s 0
Job
#!/bin/sh
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
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   =========================="
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

限制Docker日志大小配置

# 编辑docker配置文件
nano /etc/docker/daemon.json

# 加入如下配置,限制每个容器最大日志大小50M,最大文件数1
{
  "log-driver":"json-file",
  "log-opts": {"max-size":"50m", "max-file":"1"}
}

# 重启docker服务


# 查看overlayer2对应容器
```bash
for container in $(docker ps --all --quiet --format '{{ .Names }}'); do
    echo "$(docker inspect $container --format '{{.GraphDriver.Data.MergedDir }}' | \
      grep -Po '^.+?(?=/merged)'  ) = $container"
done
```
systemctl daemon-reload
systemctl restart docker
0

评论 (2)

取消
  1. 头像
    皮卡丘 作者
    Windows 10 · Google Chrome

    想问下,你这个是用什么框架做的

    回复
    1. 头像
      DONG HAO
      MacOS · Google Chrome
      @ 皮卡丘

      Typecho 开源博客

      回复