docker进阶教程之dockerfile优化镜像大小
目录
-
一、无优化构建镜像二、不需要输出的指令丢入/dev/null三、减少RUN构建四、多阶段构建五、使用更为轻量级的linux发行版本 总结
一、无优化构建镜像
- mkdir /mnt/nginx
- vim Dockerfile
- FROM centos:7
- RUN yum install -y gcc pcre pcre-devel devel zlib-devel make
- ADD nginx-1.22.0.tar.gz /mnt/nginx
- WORKDIR /mnt/nginx/nginx-1.22.0
- #关闭debug日志
- RUN sed -i ‘s/CFLAGS=”$CFLAGS -g”/#CFLAGS=”$CFLAGS -g”/g’ auto/cc/gcc
- RUN ./configure –prefix=/usr/local/nginx
- RUN make
- RUN make install
- EXPOSE 80
- VOLUME [“/usr/local/nginx/html”]
- CMD [“/usr/local/nginx/sbin/nginx”,”-g”,”daemon off;”]
复制代码
二、不需要输出的指令丢入/dev/null
- FROM centos:7
- RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && yum clean all
- ADD nginx-1.22.0.tar.gz /mnt/nginx
- WORKDIR /mnt/nginx/nginx-1.22.0
- 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
- RUN rm -rf /mnt/nginx/nginx-1.22.0
- EXPOSE 80
- VOLUME [“/usr/local/nginx/html”]
- CMD [“/usr/local/nginx/sbin/nginx””-g”,”daemon off;”]
复制代码
三、减少RUN构建
- FROM centos:7
- ADD nginx-1.22.0.tar.gz /mnt/nginx
- WORKDIR /mnt/nginx/nginx-1.22.0
- 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 /mnt/nginx/nginx-1.22.0
- EXPOSE 80
- VOLUME [“/usr/local/nginx/html”]
- CMD [“/usr/local/nginx/sbin/nginx”,”-g”,”daemon off;”]
复制代码
docker build -t nginx:v3 . 构建镜像
docker images查看镜像
四、多阶段构建
- FROM centos:7 as build
- ADD nginx-1.22.0.tar.gz /mnt/nginx
- WORKDIR /mnt/nginx/nginx-1.22.0
- 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 /mnt/nginx/nginx-1.22.0
- FROM centos:7
- EXPOSE 80
- VOLUME [“/usr/local/nginx/html”]
- COPY –from=build /usr/local/nginx /usr/local/nginx
- CMD [“/usr/local/nginx/sbin/nginx”,”-g”,”daemon off;”]
复制代码
- docker build -t nginx:v4 . 构建镜像
- docker images查看镜像
复制代码
五、使用更为轻量级的linux发行版本
debian
alpine
apt add
Sandbox
Busybox
- #下载debian压缩包
- wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
- docker import debian-7.0-x86-minimal.tar.gz — debian:v1 生成镜像
- docker images 查看
复制代码
总结
到此这篇关于docker进阶教程之dockerfile优化镜像大小的文章就介绍到这了,更多相关dockerfile优化镜像大小内容请搜索共生网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持共生网络!
原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/108259.html