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
- 一键清理(谨慎:会删除已停止容器、未使用网络/卷、悬空镜像)
- 删除指定镜像(按仓库:标签或镜像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 配置)。