Docker 给镜像瘦身

本文介绍了如何通过分析Docker镜像的历史记录来优化和减小镜像大小,强调了Dockerfile中每条指令都会增加镜像层,从而增加整体大小。通过从现有容器创建新的基础镜像来实现瘦身。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:https://blog.youkuaiyun.com/lyf0327/article/details/107186258/

在 Dockerfile 中, 每一条指令都会创建一个镜像层,继而会增加整体镜像的大小。而commit也是层的增加。
这其实也很好理解,例如git,你对某个文件增加了一行,又删除了一这一行,虽然最新版文件看起来没有了,但其实历史还是被记录下来。
手里的这个环境并没有原始的Dockerfile,并不知道从第一版到现在做了什么。所以干脆从零开始,把当前的容器直接做成基础镜像。

不在废话,直接开始:


1.进入docker容器
	查看当前目录,删除不需要内容(容器中)
	#进入根目录
	cd / 
	#查看各个目录体积
	du -sh * |sort 
Docker镜像瘦身(slim)是指通过一系列的优化步骤来减少Docker镜像大小,使其更为轻量。这样不仅可以减少存储空间的需求,还能加速镜像的拉取速度。下面是一些常见的Docker镜像瘦身技巧: 1. 使用基础镜像选择合适的Docker基础镜像(base image)是非常重要的。对于非Windows环境,可以选择`alpine`或`busybox`这类小巧的基础镜像。例如,使用`alpine`作为基础镜像通常能显著减小镜像大小。 2. 删除不必要的文件在构建镜像的过程中,可以使用`RUN rm -rf`命令删除不再需要的文件或目录,比如编译过程中的临时文件、源代码等。 3. 多阶段构建(Multi-stage builds)Docker 17.05及以上版本支持多阶段构建,可以在最终的镜像中只包含运行时必需的文件。在多阶段构建中,可以先在一个阶段构建应用,然后将构建结果复制到最终镜像中。 4. 使用`.dockerignore`文件在构建上下文时,可以使用`.dockerignore`文件排除不需要传递到Docker守护进程的文件和目录,这可以减少构建上下文的大小,从而减少最终镜像大小。 5. 使用ADD和COPY命令当需要将文件添加到镜像中时,应优先使用`COPY`命令,因为`ADD`命令会进行一些额外的处理,比如自动解压缩等。如果仅需要复制文件而不需要额外功能,`COPY`更为合适。 6. 清理缓存如果在镜像中使用了包管理器(如`apt`或`yum`),确保在安装完需要的包后删除所有缓存文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值