前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker - 占满根目录空间的解决方案

docker - 占满根目录空间的解决方案

作者头像
为为为什么
发布2022-08-05 14:39:51
1.4K0
发布2022-08-05 14:39:51
举报
文章被收录于专栏:又见苍岚又见苍岚

Docker 默认会占用根目录的空间,时间久了就会吧根目录占满,本文记录解决方案。

问题复现

不知不觉根目录已经没有空间,ls 的补全都会报错。

代码语言:javascript
复制
cannot create temp file for here-document: No space left on devic

  • 可以看到 /已经没有空间了
代码语言:javascript
复制
$ df -h
Filesystem                           Size  Used Avail Use% Mounted on
udev                                  32G     0   32G   0% /dev
tmpfs                                6.3G  138M  6.2G   3% /run
/dev/mapper/MT3--vg-root             219G  208G     0 100% /
tmpfs                                 32G   32K   32G   1% /dev/shm
tmpfs                                5.0M     0  5.0M   0% /run/lock
tmpfs                                 32G     0   32G   0% /sys/fs/cgroup
/dev/sdb1                            3.6T  1.1T  2.4T  32% /gluster/data

解决思路

方案1
代码语言:javascript
复制
sudo apt-get autoclean   # 删除你已经卸载掉的软件包的命令为 

sudo apt-get clean       # 若你想清理出更多的空间,可以把电脑上存储的安装包全部卸载

sudo apt-get autoremove  # 删除已经被卸载的软件所依赖的(其他软件不依赖的)孤立的软件包

方案2

空间仍不足:通过建立软链接将/var目录下占用空间较大的目录移动到富足的空间区块(如/home)下,使得/var下不再占用空间。 (具体实现)

  • 查看文件夹下文件占用磁盘空间
代码语言:javascript
复制
sudo du -ah -x --max-depth=1

  • 通过排查发现/var/lib/docker中文件巨大,将其移到其他磁盘中
  • 为了避免风险并提升速度(小文件很多),将其压缩到其他盘中再解压
代码语言:javascript
复制
tar -zcvf [压缩后的文件.tar.gz] var/lib/docker

  • 解压:
代码语言:javascript
复制
tar -zxvf [压缩后的文件.tar.gz]

  • /var/lib/docker重命名为/var/lib/docker-old
代码语言:javascript
复制
sudo mv /var/lib/docker /var/lib/docker-old

这时查看 docker images 是空的

  • 建立软连接重现docker
代码语言:javascript
复制
ln -s /var/lib/docker [解压后的docker文件夹]

  • 这时查看 docker images 一切正常的化已经可以看到之前的所有docker 数据了

但是如果这时新建容器或启动容器会报错:

代码语言:javascript
复制
OCI runtime create failed: /var/lib/docker/overlay2/c6eb60dada971e57fd5d125fb61d294870be347a2efb287862f8dfe52d99c57b/merged is not an absolute path or is a symlink: unknown

  • 需要重启 docker
代码语言:javascript
复制
service docker stop
service docker start

代码语言:javascript
复制
service docker restart

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年3月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题复现
  • 解决思路
    • 方案1
      • 方案2
      • 参考资料
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档