美食家大橙子 发表于 2024-11-23 20:58:20

办理docker目录内存不敷扩容处置惩罚

当我们利用docker时,经常会创建新镜像和新容器,在新容器中又会安装各种包,这些东西不是假造的,而是实着实在存于我们的磁盘中,默认在/var/lib/docker中,这个目录是属于系统盘的,而系统盘的空间往往不大,这样就会造成,随着时间的推移,docker越来越大,末了系统盘的空间被占满,所以这个时候就必要迁移docker的存储目录到更大的盘,才能把系统盘的空间腾出来。
当重启容器提示no space left 就是内存不敷
1、查看服务器全部磁盘的利用环境:

df -h
https://i-blog.csdnimg.cn/direct/cd26888f738345c5b0a694d9b775eda9.png
可以看到每个盘的大小,这里可以看到/dev/mapper/centos-root总大小是50G(相对其他盘小太多),之前docker给占满了,因为我后面给docker相干迁移到了home下面,所以空出很大的空间,可以看到/dev/mapper/centos-home空间总大小984G,挂载点是/home,于是我给docker相干的目录迁移到/home下了
2、查看docker镜像和容器存储目录的空间大小

du -sh /var/lib/docker/
3、制止docker服务

systemctl stop docker
制止失败的时候可以更换命令试试
service docker stop
4、docker目录不敷迁移扩容方法:


[*] 将docker迁移到大容量的磁盘中
我这里是迁移到/home/docker目录下,相当于给原来的/var换成了/home/docker其他的布局和之前保持同等
# 首先创建目录
mkdir -p /home/docker/lib/
#迁移
rsync -avz /var/lib/docker /home/docker/lib/
https://i-blog.csdnimg.cn/direct/fc5ccabc8b304faf8d4dc9d3fd4e9f00.png
[*] 编辑/etc/docker/daemon.json,添加参数,将docker的目录迁移绑定
红框是添加的参数,nginx版本差别data-root大概会不生效,可以给data-root换成graph试试
https://i-blog.csdnimg.cn/direct/c878372906864bfebd0b624efc98895d.png
[*] 重载和重启docker服务
systemctl daemon-reload && systemctl restart docker
如果systemctl依然运行失败,可以利用以下命令重启docker试试:
service docker restart
查抄docker是否绑定新目录
docker info
如果Docker Root Dir由/var/lib/docker变为你指定的目录,说明迁移成功
https://i-blog.csdnimg.cn/direct/d4c6b4f8e8374943a5fc47fc71acd781.png
删除docker旧目录
rm -rf /var/lib/docker
这个时候再去利用docker image 、 docker ps 就可以发现之前的镜像和容器数据都在,并且可以正常利用啦

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 办理docker目录内存不敷扩容处置惩罚