1. RUN脚本导致docker镜像文件较大增长
每个RUN或COPY命令都会导致镜像分层,分层中的文件为执行命令所涉及的所有文件,例如COPY一个APP文件夹到镜像,再RUN chmod -R +x APP,则会导致镜像中APP文件夹的分为两层,镜像中APP文件夹双倍的容量(一层为不加+xAPP的文件夹,另一层为+x的APP文件夹);解决方案为拷贝的时候就把文件夹的权限修改好。
我们经常会看到Dockerfile中的RUN指令后面跟了很多命令,用"&& /"分开,目的就是让镜像尽量少的分层。
通过【docker history 镜像ID】可以看到镜像的分层信息
通过【docker save 】导出的镜像后,再通过压缩工具打开,可以看到镜像分层ID的文件夹,分层ID的文件夹中有个压缩包,压缩包中包含了分层文件的内容