Dockerfile 编写正确姿势(二)

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,效果非常明显。

# docker  

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×