zl程序教程

您现在的位置是:首页 >  工具

当前栏目

完美解决docker和宿主机ubuntu空间不足问题以及软连接到映射的目录的空间内存解决方法

2023-09-14 09:09:14 时间

说明:如果你对以下的一些技术点和知识点未接触学习过请慎重操作,以免指令操作失误而造成不必要的麻烦。

一、Ubuntu / 根目录空间不足

  1. 在 / 目录下用du --max-depth=1 -h命令查看最大占用的一级目录:
sudo du --max-depth=1 -h
  1. 继续进入该目录(/var)查看下一级目录空间占用:
sudo du --max-depth=1 -h /var
  1. 继续进入该目录(/var/log)查看下一级目录空间占用:
sudo du --max-depth=1 -h /var/log

查看占用最多文件

  1. 清理该文件夹即可

ubuntu系统根目录空间不足 – 扩展根目录磁盘空间
参考文献:https://blog.csdn.net/water_93/article/details/84062512

二、在Ubuntu中安装软件时,提示: E: You don’t have enough free space in /var/cache/apt/archives/.

如果上述的方法(apt-get clean, apt-get autoclen)解决不了问题,那就使用如下策略:

参考文献:https://blog.csdn.net/fu6543210/article/details/103283781
var目录是一个单独分区,空间本来就真不够,无路怎么clean都不够的。

最后,解决方法就是吧这个文件夹重新定位,不要放在var里面,我的var是一个分区,用软连接定向到一个空间足够的分区就可以了:清除所有已下载的安装包

 sudo apt-get clean

软链接到HOME下的一个目录即可,home下新建debs文件夹:
在某个空间大的分区建立一个目录,然后把/var/cache/apt/archives换成指向那个目录的软链接

mkdir -p "$HOME/debs/partial"
rm -rf /var/cache/apt/archives
ln -s "$HOME/debs" /var/cache/apt/archives

三、软连接到映射的目录

仿造以上方法,下面实现将docker的空间软链接到宿主机映射的data目录下:
docker主机映射到Ubuntu宿主机的方法请参考我以前的博客,这里就不再赘述。
未映射前是这样的:
在这里插入图片描述开始准备软连接到映射的目录,软连接公式:
ln -s “$你的镜像的容器所映射到宿主机的目录” /var/cache/apt/archives

#进入容器后,查看映射文件夹,这里的data就是我映射到宿主机的文件下
root@ovo:/# ls
bin   data  etc   lib    lib64   media  nvidia  proc  run   srv  tmp  var
boot  dev   home  lib32  libx32  mnt    opt     root  sbin  sys  usr  workspace
root@ovo:/# ln -s "$ROOT/data" /var/cache/apt/archives #映射到home目录下的映射容器的data目录

更新升级效果:
在这里插入图片描述

简单说明一下:

第一条语句是把/var/cache/目录整个搬到/home/cache/目录下

第二条语句是把/var/cache/目录整个删除

第三条语句是创建一个软连接。

然后reboot重启,又可以看到openSUSE的登陆界面以及正常使用了。

#由于/home/目录当初留空间很大,简单处理一下: 
root@ovo:/# du -sh * 
13M	bin
175M	boot
4.0K	cdrom
7.7M	core
1.8M	dev
4.0K	Dockerfile
4.0K	docker-test-volume
16K	docker_volume
15M	etc
50G	home
0	initrd.img
0	initrd.img.old
839M	lib
4.0K	lib64
16K	lost+found
8.0K	media
4.0K	mnt
232M	opt
du: cannot access 'proc/530/task/530/fd/4': No such file or directory
du: cannot access 'proc/530/task/530/fdinfo/4': No such file or directory
du: cannot access 'proc/530/fd/3': No such file or directory
du: cannot access 'proc/530/fdinfo/3': No such file or directory
0	proc
1.2G	root
du: cannot access 'run/user/1000/gvfs': Permission denied
18M	run
13M	sbin
431M	snap
4.0K	srv
0	sys
128K	tmp
19G	usr
94G	var
0	vmlinuz
0	vmlinuz.old
root@ovo:/# cd var
root@ovo:/var# cp -R /var/cache /home/cache
root@ovo:/var# rm -rf /var/cache
root@ovo:/var# ln -s /home/cache /var/cache

在这里插入图片描述

备注:docker中的其他操作方法同上,前提docker的镜像要含有Ubuntu的附加镜像。

参考文献:
https://blog.csdn.net/qq_3137

https://blog.csdn.net/mynameislinduan/article/details/90053727