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

 更新时间:2022年10月27日 10:38:08   作者:芒地狠  
同样功能的镜像,但是不同的Dockerfile build出来的镜像大小是不一样的,下面这篇文章主要给大家介绍了关于docker进阶教程之dockerfile优化镜像大小的相关资料,需要的朋友可以参考下

一、无优化构建镜像

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优化镜像大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 亲手教你Docker Compose安装DOClever的详细过程

    亲手教你Docker Compose安装DOClever的详细过程

    DOClever是一个可视化免费开源的接口管理工具,DOClever前后端全部采用了javascript来作为我们的开发语言。这篇文章主要介绍了Docker Compose安装DOClever的详细过程,需要的朋友可以参考下
    2021-09-09
  • Docker部署Laravel应用的实现示例

    Docker部署Laravel应用的实现示例

    这篇文章主要介绍了Docker部署Laravel应用的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • docker镜像消失的问题及临时解决方案

    docker镜像消失的问题及临时解决方案

    本文主要介绍了docker镜像消失的问题及临时解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • Docker搭建PHP运行环境完整步骤(图文教程)

    Docker搭建PHP运行环境完整步骤(图文教程)

    PHP是一种广泛使用的编程语言,被用于Web开发和服务器管理等各种用途,而Docker则是一种非常流行的容器化平台,可以方便地管理应用程序和环境,这篇文章主要给大家介绍了关于Docker搭建PHP运行环境的完整步骤,需要的朋友可以参考下
    2023-09-09
  • docker容器时区错误问题

    docker容器时区错误问题

    常出现docker中运行的容器获取到的时间与北京时间相差8小时的问题,其实是因为容器运行的时区不正确。本文主要介绍了docker容器时区错误问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • docker安装rabbitmq无法进入管理页面的问题

    docker安装rabbitmq无法进入管理页面的问题

    这篇文章主要介绍了docker安装rabbitmq无法进入管理页面的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 基于docker的 nacos安装部署过程

    基于docker的 nacos安装部署过程

    这篇文章主要介绍了基于docker的 nacos安装部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-08-08
  • 使用Dockerfile实现数据卷的挂载问题(推荐)

    使用Dockerfile实现数据卷的挂载问题(推荐)

    Dockerfile就是一个可以用来构建镜像的文件,可以理解为一个脚本文件,可以通过这个脚本文件自定义生成一个我们想要的镜像,镜像都是一层一层的,里面的每一条命令就是一层,本文给大家介绍使用Dockerfile实现数据卷的挂载,感兴趣的朋友一起看看吧
    2022-03-03
  • 批量删除docker过期停止的容器的四种方法

    批量删除docker过期停止的容器的四种方法

    过期的容器也是占用一部分的内存空间,这时候如果对应一个个删除容器id,有些麻烦,有没有方法对应将其批量删除呢,本文给大家介绍了批量删除docker过期停止的容器的四种方法,需要的朋友可以参考下
    2024-02-02
  • Docker 容器文件系统详细介绍(图文)

    Docker 容器文件系统详细介绍(图文)

    这篇文章主要介绍了Docker 容器文件系统详细介绍(图文)的相关资料,这里对Docker 容器文件系统进行了具体的分析详解,需要的朋友可以参考下
    2016-12-12

最新评论