最近在工作中遇到了服务器无法进入docker容器的问题,提示no space left on device
问题现象
从提示上看,是没有磁盘空间了.于是乎想当然觉得可能是服务器上有些什么缓存之类的,重启服务器试试.
重启之后,在启动docker服务时报出新的错误提示:
loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
执行指令"systemctl status"可以查看具体报错信息,推测还是磁盘空间不足导致docker启动失败.
问题排查
使用下面的指令查看磁盘空间,发现/dev/vda1占用100%,磁盘空间的确已经不足.
df -h
于是进入根目录下的各一级子目录,使用以下指令查看该目录资源占用情况.
du -sh *
发现/var/lib/docker/overlay占用空间很大.
注意: /var/lib/docker需要执行sudo su切换root账户才能查看其文件夹下的内容.
问题解决
使用以下指令查看docker所占磁盘大小.
docker system df
执行以下指令清理空间资源.
docker system prune
该指令默认会清除所有如下资源:
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所关联的网络(network)
所有悬空镜像(image)