翼度科技»论坛 云主机 服务器技术 查看内容

docker进阶教程之dockerfile优化镜像大小

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
一、无优化构建镜像
  1. mkdir /mnt/nginx
  2.  
  3. vim Dockerfile
  4. FROM centos:7
  5. RUN yum install -y gcc pcre pcre-devel devel zlib-devel make
  6. ADD nginx-1.22.0.tar.gz /mnt/nginx
  7. WORKDIR /mnt/nginx/nginx-1.22.0
  8. #关闭debug日志
  9. RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc 
  10. RUN ./configure --prefix=/usr/local/nginx 
  11. RUN make
  12. RUN make install
  13. EXPOSE 80
  14. VOLUME ["/usr/local/nginx/html"]
  15. CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]  
复制代码






二、不需要输出的指令丢入/dev/null
  1. FROM centos:7
  2. RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && yum clean all
  3. ADD nginx-1.22.0.tar.gz /mnt/nginx
  4. WORKDIR /mnt/nginx/nginx-1.22.0
  5. RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc
  6. RUN ./configure --prefix=/usr/local/nginx &> /dev/null
  7. RUN make &> /dev/null
  8. RUN make install &> /dev/null
  9. RUN rm -rf /mnt/nginx/nginx-1.22.0
  10. EXPOSE 80
  11. VOLUME ["/usr/local/nginx/html"]
  12. CMD ["/usr/local/nginx/sbin/nginx""-g","daemon off;"]
复制代码




三、减少RUN构建
  1. FROM centos:7
  2. ADD nginx-1.22.0.tar.gz /mnt/nginx
  3. WORKDIR /mnt/nginx/nginx-1.22.0
  4. RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \
  5.  yum clean all && \
  6.  sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \
  7.  ./configure --prefix=/usr/local/nginx &> /dev/null && \
  8.  make &> /dev/null && make install &> /dev/null &&\
  9.  rm -rf /mnt/nginx/nginx-1.22.0
  10. EXPOSE 80
  11. VOLUME ["/usr/local/nginx/html"]
  12. CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
复制代码

docker build -t nginx:v3 . 构建镜像
docker images查看镜像




四、多阶段构建
  1. FROM centos:7 as build 
  2. ADD nginx-1.22.0.tar.gz /mnt/nginx 
  3. WORKDIR /mnt/nginx/nginx-1.22.0
  4. RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \
  5. yum clean all &&\
  6. sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \
  7. ./configure --prefix=/usr/local/nginx &> /dev/null && \
  8. make &>/dev/null && \
  9. make install &>/dev/null && \
  10. rm -rf /mnt/nginx/nginx-1.22.0

  11. FROM centos:7
  12. EXPOSE 80
  13. VOLUME ["/usr/local/nginx/html"]
  14. COPY --from=build /usr/local/nginx /usr/local/nginx
  15. CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
复制代码
  1. docker build -t nginx:v4 . 构建镜像
  2. docker images查看镜像
复制代码





五、使用更为轻量级的linux发行版本

debian
alpine
apt add
Sandbox
Busybox
  1. #下载debian压缩包
  2. wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
  3. docker import debian-7.0-x86-minimal.tar.gz -- debian:v1 生成镜像
  4. docker images 查看
复制代码
总结

到此这篇关于docker进阶教程之dockerfile优化镜像大小的文章就介绍到这了,更多相关dockerfile优化镜像大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/article/266061.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具