docker存储空间报错解决(谨慎操作,会影响原来的容易镜像,不熟练切勿操作)

在这里插入图片描述

报错内容

[root@Dream package]# docker build -t imapp .
[+] Building 21.0s (6/19)
 => [internal] load build definition from Dockerfile                                                                                                 0.1s
 => => transferring dockerfile: 907B                                                                                                                 0.0s
 => [internal] load .dockerignore                                                                                                                    0.1s
 => => transferring context: 2B                                                                                                                      0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                                                          2.5s
 => [ 1/15] FROM docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                                  0.2s
 => => resolve docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                                    0.1s
 => => sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4 1.20kB / 1.20kB                                                       0.0s
 => => sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f 529B / 529B                                                           0.0s
 => => sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9 2.75kB / 2.75kB                                                       0.0s
 => ERROR [internal] load build context                                                                                                             18.2s
 => => transferring context: 1.45GB                                                                                                                 18.1s
 => [ 2/15] RUN mkdir /data                                                                                                                          0.9s
------
 > [internal] load build context:
------
ERROR: failed to solve: write /var/lib/docker/overlay2/pg3tim64h8tebbvpq5vhkqfbo/diff/ZIM-23.1.5.x86_64.all.tar: no space left on device

问题分析

Docker构建过程中报错了。错误信息显示磁盘空间不足。这个错误通常发生在Docker镜像的构建过程中,当本地磁盘空间不足时会出现此问题。

为了解决这个问题,可以尝试以下方法:

  1. 清理磁盘空间:删除不需要的文件或目录,释放磁盘空间。可以使用df -h命令检查磁盘使用情况,并使用rm命令删除不必要的文件。

  2. 清理Docker镜像:使用docker image prune命令清理不再使用的Docker镜像。

  3. 调整Docker配置:你可以通过删除未使用的Docker镜像、容器和卷来释放空间。运行docker system prune命令可以清理Docker资源。

  4. 扩大磁盘空间:如果上述方法无法解决问题,你可能需要考虑扩展磁盘空间或更换磁盘。

在这里,我们先看看磁盘空间分布情况地方
在这里插入图片描述
然后我们切换磁盘空间(注意,会影响原来运行的docker容器)

问题解决

要让Docker使用 /dev/mapper/centos-home 分区的挂载点/home作为其存储路径,你可以通过编辑 Docker 的配置文件并修改其存储驱动来实现。以下是一些步骤供你参考:

  1. 使用文本编辑器打开 Docker 服务的配置文件 /etc/docker/daemon.json(如果文件不存在则创建它):

    sudo vi /etc/docker/daemon.json
    
  2. 在文件中添加以下内容,将 data-root 设置为 /home(或者你希望的路径):

    {
      "data-root": "/home"
    }
    
  3. 保存并关闭文件。

  4. 重启 Docker 服务以使配置生效:

    sudo systemctl restart docker
    

现在,Docker 将使用 /dev/mapper/centos-home 分区作为其存储路径。请确保目标分区具有足够的容量来存储 Docker 的镜像、容器和其他相关数据。

请注意,修改 Docker 的存储路径可能需要对文件权限进行适当的更改,以确保 Docker 正确访问和操作所需的文件。也请注意,这将使用 /home 分区的空间,并且可能会对其他系统文件或应用程序产生影响,请谨慎操作。

预防操作

如果重启失败,大家可以执行如下操作,查看错误信息:

  1. 运行以下命令来查看 Docker 服务的状态信息:

    systemctl status docker.service
    

    这会显示 Docker 服务的当前状态以及可能的错误消息。

  2. 运行以下命令来查看系统日志中与 Docker 服务相关的详细信息:

    journalctl -u docker.service -xe
    

    这会显示与 Docker 服务相关的日志,其中可能包含与错误相关的附加详细信息。

通过查看这些输出,你可以获取更多关于 Docker 服务失败的错误信息,以便进行进一步排查和解决。
如果报错如下 “Unable to get the full path to root (/dev/mapper/centos-home/docker)”,,就是Docker 在获取 /dev/mapper/centos-home/docker 的完整路径时遇到了问题。

这个错误可能是由于 Docker 无法解析给定路径导致的。请确保 /dev/mapper/centos-home/dev/mapper/centos-home/docker 这两个路径在系统中存在,并且有正确的权限。

你可以按照以下步骤来检查和解决问题:

  1. 确认 /dev/mapper/centos-home/dev/mapper/centos-home/docker 这两个路径是否存在。可以运行以下命令来检查:

    ls -l /dev/mapper/centos-home
    ls -l /dev/mapper/centos-home/docker
    

    如果这些路径不存在,请确保正确设置了文件系统和挂载点,并按照上一次回答中的步骤来创建正确的路径。

  2. 确认这些路径的权限是否正确。通常情况下,Docker 需要有足够的权限来读取和写入存储路径。可以运行以下命令来检查权限:

    ls -ld /dev/mapper/centos-home
    ls -ld /dev/mapper/centos-home/docker
    

    确保你具有适当的权限,通常是确保 Docker 用户组(如 dockerdockerroot)具有对这些路径的访问权限。

  3. 如果路径存在且权限正确,还可以尝试重新配置 Docker 来使用其他路径作为存储路径,例如使用 /var/lib/docker。编辑 /etc/docker/daemon.json 文件并修改 "data-root" 值为其他路径,然后重启 Docker 服务:

    sudo vi /etc/docker/daemon.json
    # 修改 "data-root" 的值为其他路径,例如 "/var/lib/docker"
    sudo systemctl restart docker
    

尝试上述步骤后,如果问题仍然存在,就需要仔细查看错误消息和日志!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/52554.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TCP 三次握手四次挥手浅析

大家都知道传输层中的TCP协议是面向连接的,提供可靠的连接服务,其中最出名的就是三次握手和四次挥手。 一、三次握手 三次握手的交互过程如下 喜欢钻牛角尖的我在学习三次握手的时候就想到了几个问题:为什么三次握手是三次?不是…

AnimateDiff论文解读-基于Stable Diffusion文生图模型生成动画

文章目录 1. 摘要2. 引言3. 算法3.1 Preliminaries3.2. Personalized Animation3.3 Motion Modeling Module 4. 实验5.限制6. 结论 论文: 《AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning》 github: https://g…

销售易和管易云接口打通对接实战

销售易和管易云接口打通对接实战 来源系统:销售易 销售易CRM支持企业从营销、销售到服务的全流程自动化业务场景,创新性地利用AI、大数据、物联网等新型互联网技术打造双中台型CRM;既能帮助B2B企业连接外部经销商、服务商、产品以及最终用户,…

支持多种通信方式和协议方便接入第三方服务器或云平台

2路RS485串口是一种常用的通信接口,可以支持Modbus Slave协议,并可接入SCADA、HMI、DSC、PLC等上位机。它还支持Modbus RTU Master协议,可用于扩展多达48个Modbus Slave设备,如Modbus RTU远程数据采集模块、电表、水表、柴油发电机…

【Rust学习 | 基础系列3 | Hello, Rust】编写并运行第一个Rust程序

文章目录 前言一,创建项目二,两种编译方式1. 使用rustc编译器编译2. 使用Cargo编译 总结 前言 在开始学习任何一门新的编程语言时,都会从编写一个简单的 “Hello, World!” 程序开始。在这一章节中,将会介绍如何在Rust中编写并运…

强推!大语言模型『百宝书』,一文缕清所有大模型!

夕小瑶科技说 原创 作者 | 王思若 最近,大型语言模型无疑是AI社区关注的焦点,各大科技公司和研究机构发布的大模型如同过江之鲫,层出不穷又眼花缭乱。 让笔者恍惚间似乎又回到了2020年国内大模型“军备竞赛”的元年,不过那时候…

DSA之图(4):图的应用

文章目录 0 图的应用1 生成树1.1 无向图的生成树1.2 最小生成树1.2.1 构造最小生成树1.2.2 Prim算法构造最小生成树1.2.3 Kruskal算法构造最小生成树1.2.4 两种算法的比较 1.3 最短路径1.3.1 两点间最短路径1.3.2 某源点到其他各点最短路径1.3.3 Dijkstra1.3.4 Floyd 1.4 拓扑排…

【前端知识】React 基础巩固(三十六)——RTK中的异步操作

React 基础巩固(三十六)——RTK中的异步操作 一、RTK中使用异步操作 引入RTK中的createAsyncThunk,在extraReducers中监听执行状态 import { createSlice, createAsyncThunk } from "reduxjs/toolkit"; import axios from "axios";export cons…

第七篇:k8s集群使用helm3安装Prometheus Operator

安装Prometheus Operator 目前网上主要有两种安装方式,分别为:1. 使用kubectl基于manifest进行安装 2. 基于helm3进行安装。第一种方式比较繁琐,需要手动配置yaml文件,特别是需要配置pvc相关内容时,涉及到的yaml文件太…

程序员做项目必用的工具【更新中...】

每个程序员多多少少都会有自己简化项目的小工具,我采访了我们公司所有的工程师总结了程序员必备工具篇。 一.unisms 官网:https://unisms.apistd.com/ 不会有人这年头写注册登录还是自己写验证码模块吧? 你该得拥有一个短信验证码平台了&…

【GUI】基于开关李雅普诺夫函数的非线性系统稳定(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

pytest 入门

1,安装pytest 打开终端或命令提示符窗口,在终端中运行以下命令来安装pytest: pip install pytestpip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest 确保您的系统上已经安装了Python。您可以在终端中运行以下命令来检查Python的安装情况: pytest --version…

汽车分析,随时间变化的燃油效率

简述 今天我们来分析一个汽车数据。 数据集由以下列组成: 名称:每辆汽车的唯一标识符。MPG:燃油效率,以英里/加仑为单位。气缸数:发动机中的气缸数。排量:发动机排量,表示其大小或容量。马力&…

伦敦金在非农双向挂单

对伦敦金投资有一定经验的投资者都知道,在非农时期,伦敦金市场会出现很大的波动,那么我们如何才能抓住这些波动呢?答案是很难的。但是,有些投资者在多年实践中发明了一种双向挂单的方法,这里和大家一切分享…

使用easyui的tree组件实现给角色快捷分配权限功能

这篇文章主要介绍怎么实现角色权限的快捷分配功能,不需要像大多数项目的授权一样,使用类似穿梭框的组件来授权。 具体实现:通过菜单树的勾选和取消勾选来给角色分配权限,在这之前,需要得到角色的菜单树,角色…

vue实现flv格式视频播放

公司项目需要实现摄像头实时视频播放,flv格式的视频。先百度使用flv.js插件实现,但是两个摄像头一个能放一个不能放,没有找到原因。(开始两个都能放,后端更改地址后不有一个不能放)但是在另一个系统上是可以…

盛元广通实验室教学仪器设备综合信息管理系统LIMS

实验室作为学生以及教师进行科研教学环境,对于实验室设备的使用情况、维护、借还、台账管理、盘点、报废等需要得到有效的管理,以促进科研教学工作的高质量开展,介于传统手动管理方式越发不能满足现代科研的飞速发展需要,实验室的…

使用Django自带的后台管理系统进行数据库管理的实例

Django自带的后台管理系统主要用来对数据库进行操作和管理。它是Django框架的一个强大功能,可以让你快速创建一个管理界面,用于管理你的应用程序的数据模型。 使用Django后台管理系统,你可以轻松地进行以下操作: 数据库管理&…

MySQL高级篇第4章(逻辑架构)

文章目录 1、逻辑架构剖析1.1 服务器处理客户端请求1.2 Connectors1.3 第一层:连接层1.4 第二层:服务层1.5 第三层:引擎层1.6 存储层1.7 小结 2、SQL执行流程2.1 MySQL 中的 SQL执行流程2.2 MySQL8中SQL执行原理2.3 MySQL5.7中SQL执行原理2.4…

分享一个jquery重复绑定事件的问题

这篇文章主要分享一下前端在使用jQuery给元素绑定click事件时遇到的一点小问题。 今天在通过JS代码动态绑定元素的点击事件时遇到一点问题,如上图所示,需要实现动态控制低级内丹格子的解锁,每种宠物造型都有一个内丹数量。如图,忘…