完美解决docker和宿主机ubuntu空间不足问题以及软连接到映射的目录的空间内存解决方法
说明:如果你对以下的一些技术点和知识点未接触学习过请慎重操作
,以免指令操作失误而造成不必要的麻烦。
一、Ubuntu / 根目录空间不足
- 在 / 目录下用du --max-depth=1 -h命令查看最大占用的一级目录:
sudo du --max-depth=1 -h
- 继续进入该目录(/var)查看下一级目录空间占用:
sudo du --max-depth=1 -h /var
- 继续进入该目录(/var/log)查看下一级目录空间占用:
sudo du --max-depth=1 -h /var/log
查看占用最多文件
- 清理该文件夹即可
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
相关文章
- Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- Docker部署_docker部署网站
- docker端口映射原理_docker修改端口映射
- Docker 是怎么实现的?前端怎么用 Docker 做部署?
- Docker+VSCode打造程序员的修仙炉
- Docker服务的启动命令(systemctl start docker)
- Docker服务的停止命令(systemctl stop docker)
- Docker服务的查看服务状态命令(systemctl status docker)
- Docker查看容器命令(docker ps)
- Docker 镜像原理
- 「 【Docker】docker的基础使用介绍(小白如何使用docker) 」
- AI 对话模型被网友玩坏了!这次还可以运行 Docker 容器...
- 【Docker 系列】docker 学习十,Compose 编写规则及wp 实战
- docker中安装es和kibana
- docker 内存满了服务异常退出,强制重启造成服务无法运行详解程序员
- Docker上运行MySQL服务详解架构师
- Docker容器绑定外部IP和端口详解架构师
- 微软推出面向Windows的Docker客户端
- macvlan网络结构分析-每天5分钟玩转Docker容器技术(56)
- docker managed volume – 每天5分钟玩转 Docker 容器技术(40)
- 使用 Docker 轻松安装 MySQL 数据库(docker安装mysql)