当前位置: 首页 > ops >正文

容器-使用slim减少10x+大模型镜像

slim(原docker-slim)是一个开源工具,全称SlimToolkit(https://github.com/slimtoolkit/slim),用于基于已有的Docker镜像减小镜像的大小,同时尽可能保留容器的功能。它通过分析镜像的运行环境和应用程序依赖,移除不必要的文件和组件,从而减少镜像的大小,加快容器的启动速度,并减少资源的占用。官方声称可以缩小达30倍。

在这里插入图片描述

安装

测试机使用anolis 8 x86_64 (kernel 5.10.134-13.an8.x86_64),所以直接选择对应版本二进制即可。

#wget https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_linux.tar.gz
#tar zxvf dist_linux.tar.gz
#rsync -vaP dist_linux/* /usr/bin/
使用
1. 测试官方提供的镜像
>> docker pull archlinux:latest
...>> slim build --target archlinux:latest --tag archlinux:curl --http-probe=false --exec "curl checkip.amazonaws.com"
...>> docker run archlinux:curl curl checkip.amazonaws.com
...>> docker images
archlinux                 curl                ...        ...         17.4MB
archlinux                 latest              ...        ...         467MB
...
2. 测试大模型大镜像
# slim build --target cuda-runc:2.8.1 --tag cuda-runc:slim-2.8.1 --http-probe=false
cmd=slim info=exec message='changing continue-after from probe to nothing because http-probe is disabled' 
cmd=slim info=exec message='changing continue-after to enter' 
cmd=slim state=started
cmd=slim info=cmd.input.params target.type='image' target.image='cuda-runc:2.8.1' continue.mode='enter' rt.as.user='true' keep.perms='true' tags='cuda-runc:slim-2.8.1' image-build-engine='internal' 
cmd=slim state=image.inspection.start
cmd=slim info=image id='sha256:2cee313ecf4c2dc18d717e58dcac4918221c48d29905302c69dd63cbd8855b6f' size.bytes='196438600805' size.human='196 GB' 
cmd=slim info=image.stack name='cuda-runc:2.8.1' id='sha256:2cee313ecf4c2dc18d717e58dcac4918221c48d29905302c69dd63cbd8855b6f' index='0' 
cmd=slim info=image.exposed_ports list='8888/tcp,6006/tcp' 
cmd=slim state=image.inspection.done
cmd=slim state=container.inspection.start
cmd=slim info=sensor location='/usr/bin/mint-sensor' filemode='-rwxr-xr-x' version='linux/amd64|ALP|x.1.42.2|29e62e7836de7b1004607c51c502537ffe1969f0|2025-01-16_07:48:54AM|x' volume='mint-sensor.x.1.42.2' 
cmd=slim info=container status='created' name='mintk_17355_20250609103324' id='ffa7c3ad2adf1b14325cc6607b94fc8d52248a726c47fed472d4779a92b24073' 
cmd=slim info=container name='mintk_17355_20250609103324' id='ffa7c3ad2adf1b14325cc6607b94fc8d52248a726c47fed472d4779a92b24073' status='running' 
cmd=slim info=container message='obtained IP address' ip='172.17.0.2' 
cmd=slim info=cmd.startmonitor status='sent' 
cmd=slim info=event.startmonitor.done status='received' 
cmd=slim info=container name='mintk_17355_20250609103324' id='ffa7c3ad2adf1b14325cc6607b94fc8d52248a726c47fed472d4779a92b24073' target.port.list='32780,32781' target.port.info='8888/tcp => 0.0.0.0:32780,6006/tcp => 0.0.0.0:32781' message='YOU CAN USE THESE PORTS TO INTERACT WITH THE CONTAINER' 
cmd=slim info=continue.after mode='enter' message='provide the expected input to allow the container inspector to continue its execution' 
cmd=slim prompt='USER INPUT REQUIRED, PRESS <ENTER> WHEN YOU ARE DONE USING THE CONTAINER'
cmd=slim state=container.inspection.finishing
cmd=slim state=container.inspection.artifact.processing
cmd=slim state=container.inspection.done
cmd=slim state=building message="building optimized image" engine=internal 
cmd=slim state=completed
cmd=slim info=results status='MINIFIED' by='11.76X' size.original='196 GB' size.optimized='17 GB' 
cmd=slim info=results image.digest='sha256:7a6048f8cff2103fdb760392e9abf15f87dfe6bd7e22cbc91e4c22d2e4d5314e' has.data='true' image-build-engine='internal' image.name='cuda-runc:slim-2.8.1' image.size='17 GB' image.id='sha256:065d66c7e559286c32db72d02e9e5212a5331ff1e7681dde7ea281daf96330b8' 
cmd=slim info=results artifacts.location='/tmp/mint-state/.mint-state/images/2cee313ecf4c2dc18d717e58dcac4918221c48d29905302c69dd63cbd8855b6f/artifacts' 
cmd=slim info=results artifacts.report='creport.json' 
cmd=slim info=results artifacts.dockerfile.reversed='Dockerfile.reversed' 
cmd=slim info=results artifacts.seccomp='cuda-runc-seccomp.json' 
cmd=slim info=results artifacts.apparmor='cuda-runc-apparmor-profile' 
cmd=slim state=done
cmd=slim info=commands message='use the xray command to learn more about the optimize image' 
cmd=slim info=report file='slim.report.json' 
cmd=slim info=version status='OUTDATED' local='x.1.42.2' current='1.41.7' 
cmd=slim message='Your version of MinToolkit is out of date! Use `mint update` to get the latest version.'
app='mint' message='GitHub Discussions' info='https://github.com/mintoolkit/mint/discussions'
app='mint' message='Join the CNCF Slack channel to ask questions or to share your feedback' info='https://cloud-native.slack.com/archives/C059QP1RH1S'
app='mint' message='Join the Discord server to ask questions or to share your feedback' info='https://discord.gg/fAvq4ruKsG'
实测效果
1. 官方的镜像压缩了20倍+
#docker images
archlinux                                                                              curl    1d98ea103b43 22 minutes ago   22.1M
archlinux                                                                                 latest 694ad64eaa86   4 days ago       486MB
2. 大模型镜像压缩了11倍+
cuda-runc                                                  2.8.1         2cee313ecf4c   4 weeks ago     196GB
cuda-runc                                                  slim-2.8.1   065d66c7e559   6 minutes ago   16.7GB

综上:slim的压缩效果还是很不错的。

http://www.xdnf.cn/news/13023.html

相关文章:

  • 信息系统分析与设计复习
  • Qt项目中使用 CmdManager 实现高效的命令分发机制
  • 国际上与麦角硫因相关的人体功效试验文献分享
  • 使用homeassistant 插件将tasmota 接入到米家
  • mysql8.0忘记root密码情况下修改密码
  • VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
  • 十一、MySQL 事务底层与高可用原理
  • 基于PSO与BP神经网络回归模型的特征选择实战(Python实现)
  • MySQL--慢查询日志、日志分析工具mysqldumpslow
  • Java多线程实现之Runnable接口深度解析
  • SQLSERVER-DB操作记录
  • PyTorch学习路径与基础实践指南
  • window 显示驱动开发-如何查询视频处理功能(二)
  • SAM2Long本地部署,视频分割处理,绿幕抠像,超长视频支持
  • 【JavaSE】多线程基础学习笔记
  • 第二章 感知机
  • Logistics | 盘盈盘亏与报溢报损
  • FastAPI核心解密:深入“路径操作”与HTTP方法,构建API的坚实骨架
  • Unity-ECS详解
  • 北京智乐活科技有限公司 适趣ai 二面 全栈
  • 比较数据迁移后MySQL数据库和openGauss数据仓库中的表
  • tomcat指定使用的jdk版本
  • STM32使用水位传感器
  • React入门第一步:如何用Vite创建你的第一个React项目?
  • Excel 怎么让透视表以正常Excel表格形式显示
  • 旋量理论:刚体运动的几何描述与机器人应用
  • 认识电子元器件---高低边驱动
  • python数据结构和算法(1)
  • 为什么要创建 Vue 实例
  • Xcode 16 集成 cocoapods 报错