docker容器存放目录磁盘空间满了的解决

 更新时间:2024年07月04日 15:07:11   作者:niu_hao  
这篇文章主要介绍了docker容器存放目录磁盘空间满了的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

docker容器存放目录磁盘空间满了

在Liunx服务器上重启docker的时候,发现容器启动不了了,报的错误是:

"ERROR:cannot create temporary directory!"

我的猜测应该就是磁盘空间满了,于是执行命令"df -h",出来的结果是 挂载点/var/lib/docker/overlay/ 已用%为100%,真的是磁盘空间用完了。

我不理解的是我的容器有配置数据卷呀,容器里面动态增长的数据例如上传的图片、产生的日志都是放在数据卷里面的,照常来说是不会导致容器满了呀,后面问了公司的美女,美女说让我执行命令:docker ps -s ,看看容器大小是不是太大了,如果是太大了应该就是数据卷没有设置好。

按照美女说的执行了,发现容器大小跟我第一次运行容器的大小一样,那就说明数据卷是设置成功了。

然后就继续问美女咯,美女问docker是谁装的,我回到说是我自己安装的并且还是采用离线的方式安装的,美女就说那你就是docker默认目录没有改了,docker默认目录空间太小了,用不了多久就会满了。

docker中默认存放镜像和容器的目录是:/var/lib/docker/,就是上面我说的挂载已经满了的家伙,那既然找到原因了,那就解决呗。

解决办法

就是迁移默认目录/var/lib/docker下面的所有文件到新的目录下面,然后将docker存放镜像和容器的目录改为新的目录。

我的系统是Centos7,解决的具体步骤如下:

1、停止docker服务。

systemctl stop docker; //每个liunx版本的命令不一样。

2、创建新的docker目录,执行命令df -h,找一个大的磁盘。

我的是放在/home目录下面,我的/home目录大小有900G。

我在 /home目录下面建了 /home/docker/lib目录,执行的命令是:mkdir -p /home/docker/lib

3、迁移/var/lib/docker目录下面的文件到 /home/docker/lib下面

cp -R /var/lib/docker/* /home/docker/lib/

注意:

  • 如果文件内容很多的话,为了确保成功最好是一个文件一个文件的拷贝。
  • 如果在拷贝过程中报“设备上没有空间”的错误,就使用mv剪切。

4、修改docker配置(/etc/systemd/system/docker.service.d/devicemapper.conf),在文件末添加 --graph=/home/docker/lib

devicemapper.conf文件的内容如下:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --insecure-registry=私 服地址 --graph=/home/docker/lib

注意:

  • 如果/etc/systemd/system/docker.service.d/devicemapper.conf
  • 这个路径找不到的话,就新建,新建之后加入内容,没有私 服地址的话就可以去掉”--insecure-registry=私 服地址”

5、重载配置,重启docker

systemctl daemon-reload;
systemctl restart docker;
systemctl enable docker;

6、启动成功后,确定容器没问题后删除/var/lib/docker/目录中的文件,然后就OK了。

总结

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

相关文章

  • 本地部署Dify、Docker重装过程

    本地部署Dify、Docker重装过程

    本文介绍了如何安装Docker,并使用Docker来部署Dify,安装Docker前需要关闭Hyper-V,然后从官网下载安装包进行安装,部署Dify时,推荐使用本地部署方式,可以通过Dify官网或GitHub下载安装包并进行解压安装
    2026-01-01
  • Docker容器备份的常用方法总结

    Docker容器备份的常用方法总结

    容器化技术已经成为现代应用开发和部署的核心组成部分,而 Docker 作为最流行的容器平台,承载着越来越多的关键业务,在这些环境中,确保容器数据的安全性和可恢复性至关重要,本文给大家介绍了Docker容器备份的常用方法,需要的朋友可以参考下
    2025-08-08
  • 快速设置Docker的三种网络代理配置方式

    快速设置Docker的三种网络代理配置方式

    这篇文章主要介绍了快速设置Docker的三种网络代理配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 使用Shell脚本批量启停Docker服务

    使用Shell脚本批量启停Docker服务

    最近日常测试中经常需要手动启动或停止docker,于是决定写一个Shell脚本来代替人工操作,下面小编把我实现过程分享到脚本之家平台,需要的朋友参考下
    2019-11-11
  • Ubuntu20.04上安装docker步骤及docker使用方法

    Ubuntu20.04上安装docker步骤及docker使用方法

    Docker是一个可以简化容器中应用程序进程管理过程的应用程序,容器允许你在资源隔离的进程中运行应用程序,这篇文章主要介绍了Ubuntu20.04上安装docker步骤及docker使用的相关资料,需要的朋友可以参考下
    2026-04-04
  • 使用docker compose搭建consul集群环境的例子

    使用docker compose搭建consul集群环境的例子

    consul是HashCorp公司推出使用go语言编写的开源工具,用于实现分布式系统的服务发现与配置,今天给大家普及使用docker compose搭建consul集群环境的方法及consul基本知识讲解,感兴趣的朋友一起看看吧
    2021-06-06
  • Docker网络及容器通信原理详解

    Docker网络及容器通信原理详解

    这篇文章主要介绍了Docker网络及容器通信原理详解的相关资料,并通过启动几个容器来探究Docker网络及容器通信,需要的朋友可以参考下
    2022-11-11
  • 初次使用Docker的体验笔记总结

    初次使用Docker的体验笔记总结

    这篇文章主要介绍了初次使用Docker的体验笔记总结,对初学Docker具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • Docker部署Nacos并接入SpringBoot服务完整流程

    Docker部署Nacos并接入SpringBoot服务完整流程

    本次实践围绕 Docker 部署稳定可用的 Nacos 服务、开启登录鉴权、开放 gRPC 端口,并实现 SpringBoot 服务注册到 Nacos 展开,解决了版本兼容、鉴权配置、端口通信等核心问题,需要的朋友可以参考下
    2026-03-03
  • CentOS 8安装Docker的详细教程

    CentOS 8安装Docker的详细教程

    本文详细讲解了CentOS 8安装Docker的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12

最新评论