dockerfile-----4种优化

网友投稿 251 2022-10-18

dockerfile-----4种优化

文章目录

优化前示例

```html/xmlmkdir /nginxFROM centos:7RUN yum install -y gcc pcre pcre-devel devel zlib-devel makeADD nginx-1.12.2.tar.gz /optWORKDIR /opt/nginx-1.15.9#关闭debug日志RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gccRUN ./configure --prefix=/usr/local/nginxRUN makeRUN make installEXPOSE 80VOLUME ["/usr/local/nginx/html"]CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

![image.png](https://s2./images/20220718/1658148409732572.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![image.png](https://s2./images/20220718/1658148602655932.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![image.png](https://s2./images/20220718/1658148851537777.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) #### 优化方法1:不需要输出的指令丢入/dev/null (需要确定命令执行的是正确的) 减少不必要的缓存(丢到黑洞)删除不必要的缓存文件/磁盘文件 ```html/xml FROM centos:7 RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && yum clean all ADD nginx-1.12.2.tar.gz /opt WORKDIR /opt/nginx-1.15.9 #关闭debug日志 RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc RUN ./configure --prefix=/usr/local/nginx &> /dev/null RUN make &> /dev/null RUN make install &> /dev/null EXPOSE 80 VOLUME ["/usr/local/nginx/html"] CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"] docker build -t nginx:v1 .

优化方法2:减少RUN构建

```html/xmlFROM centos:7ADD nginx-1.12.2.tar.gz /opt WORKDIR /opt/nginx-1.12.2RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \yum clean all && \sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \./configure --prefix=/usr/local/nginx &> /dev/null && \make &> /dev/null && make install &> /dev/null &&\rm -rf /opt/nginx-1.12.2EXPOSE 80VOLUME ["/usr/local/nginx/html"]CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

docker build -f dockerfile -t nginx:v3 .

#### 优化方法3:多阶段构建(使用FROM命令生成多个镜像,将指定的镜像做为其他镜像的基础镜像环境来构建) ```html/xml FROM centos:7 as build ADD nginx-1.12.2.tar.gz /opt WORKDIR /opt/nginx-1.12.2 RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \ yum clean all && \ sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \ ./configure --prefix=/usr/local/nginx &> /dev/null && \ make &> /dev/null && make install &> /dev/null &&\ rm -rf /opt/nginx-1.12.2 EXPOSE 80 FROM centos:7 VOLUME ["/usr/local/nginx/html"] COPY --from=build /usr/local/nginx /usr/local/nginx CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

优化方法4: 使用更为轻量级的linux 发行版本

```html/xmldebianalpineapt add

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:maven手动上传jar包示例及图文步骤过程
下一篇:Dockerfile创建镜像
相关文章

 发表评论

暂时没有评论,来抢沙发吧~