You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建突发空间不足及YUM仓库故障排查求助

解决方案:Docker构建空间不足+YUM仓库失效问题

咱一步一步拆解这个双问题——容器内YUM缓存目录空间耗尽和仓库访问失效,结合你已经试过的切换镜像、清理镜像容器等操作,给你几个针对性的解决方向:

一、优先解决空间不足问题

日志明确显示/var/cache/yum/x86_64/7/base可用空间为0,哪怕只需要100k,咱得先把空间问题搞定:

  1. 优化Dockerfile,提前清理YUM缓存
    在执行yum install的RUN指令后,立刻追加清理命令,避免缓存占用后续构建阶段的空间:

    RUN yum install -y 你的依赖包 \
        && yum clean all \
        && rm -rf /var/cache/yum/*
    

    这样每一步构建完成后都会自动清理缓存,不会让垃圾占用容器临时空间。

  2. 给YUM缓存目录挂载临时文件系统
    如果构建过程中确实需要缓存,可以在docker build时指定临时挂载,给YUM缓存目录分配足够空间:

    docker build --tmpfs /var/cache/yum:rw,size=256M -t 你的镜像名 .
    

    这个命令会把YUM缓存目录挂载到内存临时文件系统里,既不占用磁盘空间,256M的大小也足够应付绝大多数依赖安装场景。

  3. 彻底清理宿主机Docker相关资源
    除了docker rmi/rm,还可以清理Docker的构建缓存、未使用的卷和网络:

    # 清理所有未使用的镜像、容器、卷、网络(谨慎执行,会删除无用资源)
    docker system prune -a
    # 专门清理构建缓存
    docker builder prune -f
    

    同时检查宿主机的Docker存储目录空间:

    df -h /var/lib/docker
    

    如果这个目录所在磁盘确实满了,需要清理宿主机上的其他冗余文件,或者扩展磁盘空间。

二、解决YUM仓库失效问题

既然其他人本地构建正常,说明你的构建环境(网络/DNS)可能有问题,或者仓库源配置不对:

  1. 替换为国内稳定的YUM镜像源
    在Dockerfile开头先替换CentOS的基础源为阿里云或者华为云的镜像,避免默认源访问失败:

    # 替换CentOS 7的YUM源为阿里云镜像
    RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' \
            -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.aliyun.com/centos|g' \
            -i.bak /etc/yum.repos.d/CentOS-Base.repo
    # 安装epel源(如果需要的话)
    RUN yum install -y epel-release \
        && sed -e 's|^mirrorlist=|#mirrorlist=|g' \
                -e 's|^#baseurl=http://download.fedoraproject.org/pub/epel|baseurl=https://mirrors.aliyun.com/epel|g' \
                -i.bak /etc/yum.repos.d/epel.repo
    
  2. 使用宿主机网络进行构建
    有时候Docker daemon的DNS配置有问题,导致容器内无法访问外部仓库,可以在构建时指定使用宿主机网络:

    docker build --network host -t 你的镜像名 .
    
  3. 排查仓库访问连通性
    在Dockerfile里临时加一个测试指令,看看能不能正常访问仓库地址:

    RUN curl -v https://mirrors.aliyun.com/centos/7/os/x86_64/repodata/repomd.xml
    

    如果这个命令失败,说明是网络连通性问题,需要排查宿主机的防火墙、代理设置;如果成功,那可能是之前的仓库源配置有误。

三、额外排查点

  • 检查Docker daemon的配置:如果你的Docker daemon设置了--storage-opt size参数,限制了容器的最大磁盘空间,需要调整这个值或者移除限制。
  • 尝试重新拉取基础镜像:有时候基础镜像本身有问题,执行docker pull 你的基础镜像名:标签重新拉取最新的基础镜像,再进行构建。

内容的提问来源于stack exchange,提问作者somenickname

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:35:28