最近遇到一个问题,线上服务器的系统盘空间被占满了,导致服务不能正常运行了。

docker启动时会报出下面这个错误

no space left on device

排查用到的命令,显示当前路径下占用空间超过1G的文件或文件夹


du -h --max-depth=1|grep G|sort -n

经过一番排查是因为docker文件将硬盘空间给占满了(50G系统盘占用了43G)。

最终排查到的路径是/var/lib/docker/

经过了一番查询发现我们可以将/var/lib/docker/这个路径下的文件转移到其他磁盘下,这样的话系统盘就会空出来了。

1、停掉服务


systemctl stop docker

2、创建docker目录,我的数据盘是在挂在到了/home下 ,可以根据实际情况调整


mkdir -p /home/docker

3、迁移目录,由于我的数据量比较大 ,这一步需要比较长的时间 ,我整整 用了半个小时


rsync -avz /var/lib/docker /home/docker/

4、修改docker配置文件中的路径


vim /etc/docker/daemon.json

在文件中增加


"data-root": "/home/docker"

5、重启docker服务


systemctl daemon-reload
 
systemctl restart docker
 
systemctl enable docker

在这一步的时候可能会报错,需要执行一下

dockerd &

6、查看docker信息


docker info

关键步骤就这几步。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐