Dockerfile 分层清理无用数据
FROM centos:7
RUN rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm \
&& yum install nginx -y \
&& yum install net-tools -y \
&& yum install vim -y \
&& yum install keepalived -y \
&& yum clean all \
&& rm -rf /var/cache/yum/ \
&& touch /etc/keepalived/check_nginx.sh \
&& echo "A=\`ps -ef | grep nginx | grep -v grep | wc -l\` \n\
if [ $A -eq 0 ];then \n\
nginx \n\
sleep 2 \n\
if [ \`ps -ef | grep nginx | grep -v grep | wc -l\` -eq 0 ];then \n\
#killall keepalived \n\
ps -ef|grep keepalived|grep -v grep|awk '{print $2}'|xargs kill -9 \n\
fi \n\
fi " > /etc/keepalived/check_nginx.sh \
&& chmod +x /etc/keepalived/check_nginx.sh
CMD [/bash/bin]
在减少容器层数的基础上,继续添加清理操作,在层内删除不必要的缓存等内容,在本例中,新增
&& yum clean all \
&& rm -rf /var/cache/yum/ \
清理 yum 缓存,然后进行build,构建后的镜像大小
REPOSITORY TAG IMAGE ID CREATED SIZE
entry clean df1fb992b636 18 minutes ago 304MB
entry latest e100eda23d9f 3 hours ago 462MB
<none> <none> 8747c80d63bf 3 hours ago 1.03GB
可见,entry:clean镜像的大小进一步大幅度的压缩,减少了大约1/3,效果非常明显。