解决docker目录内存不足扩容处理方案

 更新时间:2025年09月28日 08:48:45   作者:oNuoyi  
文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配置、重启服务并验证迁移成功,最终释放系统盘空间

当我们使用docker时,经常会创建新镜像和新容器,在新容器中又会安装各种包,这些东西不是虚拟的,而是实实在在存于我们的磁盘中,默认在/var/lib/docker中,这个目录是属于系统盘的,而系统盘的空间往往不大,这样就会造成,随着时间的推移,docker越来越大,最后系统盘的空间被占满,所以这个时候就需要迁移docker的存储目录到更大的盘,才能把系统盘的空间腾出来。

当重启容器提示no space left 就是内存不足

1、查看服务器所有磁盘的使用情况

df -h

可以看到每个盘的大小,这里可以看到/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/

编辑/etc/docker/daemon.json,添加参数,将docker的目录迁移绑定

红框是添加的参数,nginx版本不同data-root可能会不生效,可以给data-root换成graph试试

重载和重启docker服务

systemctl daemon-reload && systemctl restart docker

如果systemctl依然运行失败,可以使用以下命令重启docker试试:

service docker restart

检查docker是否绑定新目录

docker info

如果Docker Root Dir由/var/lib/docker变为你指定的目录,说明迁移成功

删除docker旧目录

rm -rf /var/lib/docker

这个时候再去使用docker image 、 docker ps 就可以发现之前的镜像和容器数据都在,并且可以正常使用啦

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • nexus搭建私有docker仓库的方法

    nexus搭建私有docker仓库的方法

    Nexus之前已支持了maven/npm/composer,由于docker仓库和前面几个存在比较大的差异,所以我特此记录下走过的坑,本文重点介绍nexus搭建私有docker仓库的相关知识,感兴趣的朋友一起看看吧
    2024-03-03
  • Docker cp命令详解之如何在Docker容器和主机之间复制文件/文件夹

    Docker cp命令详解之如何在Docker容器和主机之间复制文件/文件夹

    要从Docker容器中复制文件,可以使用docker cp命令,下面这篇文章主要给大家介绍了关于Docker cp命令详解之如何在Docker容器和主机之间复制文件/文件夹的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Docker搭建部署Node项目的方法步骤

    Docker搭建部署Node项目的方法步骤

    本文主要介绍了Docker搭建部署Node项目的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 理解Docker(2):Docker 镜像详细介绍

    理解Docker(2):Docker 镜像详细介绍

    这篇文章主要介绍了理解Docker(2):Docker 镜像详细介绍, 镜像(image)是动态的容器的静态表,有需要的可以了解下。
    2016-11-11
  • Docker如何配置Redis容器持久化

    Docker如何配置Redis容器持久化

    这篇文章主要介绍了Docker如何配置Redis容器持久化问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 卸载Docker时保留本地镜像和容器方式

    卸载Docker时保留本地镜像和容器方式

    文章讲述了如何在Linux、Windows和Mac系统中备份和恢复Docker镜像和容器,备份过程包括列出本地镜像、保存镜像和导出容器,恢复过程则涉及卸载Docker、重新安装Docker以及使用dockerload和dockerimport命令恢复镜像和容器
    2024-11-11
  • docker+gitlab+jenkins从零搭建自动化部署

    docker+gitlab+jenkins从零搭建自动化部署

    通过几天的学习和自己的理解,整理了下Docker+Jenkins的自动部署教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Docker安装Redis并介绍可视化客户端进行操作

    Docker安装Redis并介绍可视化客户端进行操作

    这篇文章主要介绍了Docker安装Redis并介绍可视化客户端进行操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • docker Network(网络)详解

    docker Network(网络)详解

    这篇文章主要介绍了docker Network(网络),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • 使用Vscode结合docker进行开发的详细过程

    使用Vscode结合docker进行开发的详细过程

    这篇文章主要介绍了如何使用Vscode结合docker进行开发,在本文中,我将提供一个在 Node 环境中运行的 JavaScript 应用程序示例。阅读在容器内开发以获取所有技术堆栈的详细文档,需要的朋友可以参考下
    2021-07-07

最新评论