温馨提示×

centos怎样回收利用镜像文件

小樊
38
2025-12-21 14:35:57
栏目: 智能运维

CentOS中镜像文件的回收与再利用

一、概念澄清

  • 在系统管理语境中,“镜像文件”既可能指 ISO 光盘镜像,也可能是 Docker 镜像。前者多用于安装/挂载与本地软件源,后者是容器运行的基础,二者“回收利用”的做法不同。

二、ISO镜像的回收与再利用

  • 挂载与读取
    • 物理介质:mount -o ro /dev/cdrom /media;弹出用 eject
    • ISO 文件:mount -o loop /path/file.iso /media
  • 卸载与释放
    • 用完及时卸载:umount /media;必要时再 eject
  • 再利用为本地YUM源(以 CentOS 6 的双DVD为例)
    • 挂载两张盘:
      • mount -o loop /mnt/iso/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/dvd1
      • mount -o loop /mnt/iso/CentOS-6.5-x86_64-bin-DVD2.iso /mnt/dvd2
    • 合并内容:
      • 拷贝DVD1全部:cp -av /mnt/dvd1 /mnt/dvd3
      • 仅追加DVD2的RPM:cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd3/Packages/
      • 合并 TRANS.TBL:cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd3/Packages/TRANS.TBL
        • mv /mnt/dvd3/Packages/TRANS.TBL{,.BAK}
        • sort /mnt/dvd3/Packages/TRANS.TBL.BAK > /mnt/dvd3/Packages/TRANS.TBL
        • rm -f /mnt/dvd3/Packages/TRANS.TBL.BAK
    • 配置本地源(/etc/yum.repos.d/CentOS-Media.repo):
      • [c6-media]
      • name=CentOS-$releasever - Media
      • baseurl=file:///mnt/dvd3
      • gpgcheck=0
      • enabled=1
      • gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    • 刷新缓存:yum clean all && yum upgrade。

三、Docker镜像的回收与再利用

  • 清理悬空与无用镜像
    • 删除悬空镜像:docker images -q -f dangling=true | xargs -r docker rmi
    • 一键清理(谨慎:会删除已停止容器、未使用网络/卷、悬空镜像)
      • docker system prune
  • 删除指定镜像(按仓库:标签或镜像ID)
    • docker rmi nginx:1.24 或 docker rmi
  • 清理容器日志释放空间
    • 查找大日志:find /var/lib/docker/containers -type f -name *.log -size +100M -print0 | xargs -0 du -h | sort -nr
    • 清空日志:> /var/lib/docker/containers//-json.log
    • 限制日志大小(/etc/docker/daemon.json):
      • {
        • “log-driver”: “json-file”,
        • “log-opts”: { “max-size”: “100m”, “max-file”: “2” }
        • }
      • 修改后执行:systemctl daemon-reload && systemctl restart docker
  • 若使用 Harbor 作为私有仓库
    • 先在UI删除镜像,再在仓库主机执行垃圾回收(GC)释放存储:
      • 停服务:docker-compose stop
      • 预览影响:docker run --rm --name gc --volumes-from registry vmware/registry:2.6.2-photon garbage-collect --dry-run /etc/registry/config.yml
      • 正式回收:docker run --rm --name gc --volumes-from registry vmware/registry:2.6.2-photon garbage-collect /etc/registry/config.yml
      • 重启:docker-compose start。

四、磁盘空间不足时的快速定位与回收

  • 快速定位占用
    • 查看分区:df -h
    • 逐级查看目录占用:du -h -x --max-depth=1 / | sort -hr
  • 回收建议
    • 清理无用镜像与容器:docker system prune -a(更激进,会删除未使用镜像)
    • 清理日志与临时文件(见上节)
    • 设置日志轮转策略,避免再次爆满(见上节 daemon.json 配置)。

0