
背景测试的时候发现docker启动容器报错报错内容如下/usr/local/bin/jenkins.sh: line 17: echo: write error: No space left on device原因因为linux虚拟机我只给了15g的大小导致磁盘空间不够了查看命令df h根目录基本已经满了查看cpu的使用情况发现cpu的使用率并不高那就是文件太大导致空间不够df -i /查看时哪个目录文件大sudo du -h --max-depth1 / 2/dev/null | sort -hr | head -20发现var目录很大继续往下看目录sudo du -h --max-depth1 /var 2/dev/null | sort -hr | head -20发现大文件在/var/lib目录下这时候大概已经猜出来是docker的问题了直接往下跟sudo du -h --max-depth1 /var/lib/docker/ 2/dev/null | sort -hr | head -20最后确定大文件都在/var/lib/docker/overlay2目录下这里面存放所有镜像层和容器层数据分析docker 下载镜像和构建容器都是占用大量的磁盘空间我们有时候会删除部分镜像和容器但是因为使用的是 docker rm 或者 docker rmi 命令只是删除了镜像但是没释放磁盘空间导致系统没空间了解决清理未使用的镜像、容器和网络docker system prune -a释放了1.38G空间查看各镜像和容器占用空间docker system df发现volums的目录也很大里面主要是挂载卷的目录数据暂时不清理以后再考虑教训以后使用删除镜像或者容器的命令时一定要连磁盘内的数据一起删除定时清理不使用的容器和镜像还有挂载卷清理参考命令docker rm -v 容器名或者iddocker volume rm 容器名或者id挂载卷全删慎用执行完挂载卷全清docker volume rm $(docker volume ls -q)最后查看清理效果清理了5G多的空间