关于Docker容器启动问题,查看日志出现:“No space left on device“

---------------------------------------------------2022.8.1更新---------------------------------------------------------------
仍然会出现 No space left on device 问题,这次出现的原因是 因为本地Windows系统上传了 elasticsearch的镜像tar包,打算解压使用,但是在解压中就出现 该问题了,这一次继续网上查阅资料,终于发现了端倪,

  1. 这回大部分资料都指向的是虚拟机磁盘占满了
  2. 通过df -h查看
    关于Docker容器启动问题,查看日志出现:“No space left on device“_第1张图片
  3. 网上查阅可能出现的原因有以下几种
    1)以往通过 rm命令删除的文件空间并没有完全被释放,可能还有其他进程调用了该文件,只是标记为 deleted,只有进程结束后才会将文件真正从磁盘中清除。
    通过命令 lsof | grep deleted查看被进程占用中的文件,但是结果如下图所示,这些文件都不占内存,因此排除这个情况
    关于Docker容器启动问题,查看日志出现:“No space left on device“_第2张图片
    2)还有一种情况是,小文件过多了,导致 inode 急剧增加,消耗完 inode 区域的空间。
    如果真是如此,那么即使磁盘空间有剩余,但由于无法创建新的 inode 来存储文件的元信息,也就无法创建新文件。
    因此使用命令df -ih查看 inode区域,结果如下图所示,显然也并不是这种情况
    关于Docker容器启动问题,查看日志出现:“No space left on device“_第3张图片
  4. 继续查阅发现,通过去到根目录\输入命令du -sh *查看当前目录下每个文件夹所占用的空间,最终发现原因,发现占用的总空间基本达到显示的16g,所以结果就是是 磁盘空间扎扎实实地被占满了,因此需要做 磁盘的扩容,这一块对于还是小白的我来说,又是一个天坑,摸索了一晚上才解决;
  5. 扩容这一块我是参考 https://blog.csdn.net/yang1393214887/article/details/120345884这一笔记实现的,主要是我的虚拟机是默认分区的系统,是没有卷组的概念,而网上大部分教程是新建Linux时配置了分区,并不适用。
    1)需要注意的一点是该文章中的第三点
    先通过执行cat /etc/fstab命令查看系统文件格式
    如果是ext格式的,就执行resize2fs /dev/sda3来刷新
    如果是xfs格式的,就执行xfs_growfs /dev/sda3 来刷新

参考的其他文章

https://cloud.tencent.com/developer/article/1721037
https://blog.csdn.net/wsyzxss/article/details/119534388

--------------------------------------------------------原文章-------------------------------------------------------------------
现象:
如题,在使用docker 运行容器后,想通过访问宿主机端口号来访问容器时,却访问不到,

  1. 通过 docker ps 查看,显示 容器没有运行成功,
  2. 通过 docker ps -a 查看全部容器运行状态,发现刚才的容器一运行就退出了 Exited,
  3. 通过 docker logs 容器名查看容器运行日志,发现显示No space left on device,
  4. 网上查阅相关资料后使用 docker system df 查看docker系统的磁盘使用情况,如下图所示,显示 本地挂载数据卷的容量已满
    关于Docker容器启动问题,查看日志出现:“No space left on device“_第4张图片
  5. 但是查阅相关资料仍不得知如何 对本地挂载数据卷进行操作,正当我一筹莫展时,我打算删一些多余的 镜像images,结果删除完之后,再次输入docker system df
    关于Docker容器启动问题,查看日志出现:“No space left on device“_第5张图片
  6. 本地挂载数据卷 空间又有了,具体原因无从得知,各位大佬对此有想法的欢迎评论区探讨

你可能感兴趣的:(Linux,docker,容器,运维)