下面就是我针对docker file同一个文件,按照layer层的个数的多少,分别构建了两个镜像的jenkins-master。两者大小相差300MB。

<1> layer层数太多,没有将命令合并为一条命令

FROM jenkins/jenkins:2.194
MAINTAINER tiandong19860806@126.com
USER root ENV MAVEN_HOME /usr/local/maven
ENV JAVA_HOME /usr/local/java
ENV M2=/usr/local/maven/repository
ENV CLASSPATH .:$JAVA_HOME/lib:$M2_HOME/lib
ENV PATH $MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH RUN mkdir -p /usr/local/java
RUN mkdir -p /usr/local/maven/repository COPY soft/apache-maven-3.5.4/* /usr/local/
COPY soft/jre1.8.0_212/* /usr/local/java/

<2> layer层数很少,将全部命令合并为一条命令

FROM jenkins/jenkins:2.194
MAINTAINER tiandong19860806@126.com USER root && \
ENV MAVEN_HOME /usr/local/maven && \
ENV JAVA_HOME /usr/local/java && \
ENV M2 /usr/local/maven/repository && \
ENV CLASSPATH .:$JAVA_HOME/lib:$M2_HOME/lib && \
ENV PATH $MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH && \ RUN mkdir -p /usr/local/java && \
RUN mkdir -p /usr/local/maven/repository && \ COPY soft/apache-maven-3.5.4/* /usr/local/ && \
COPY soft/jre1.8.0_212/* /usr/local/java/

然后,分别执行构建命令

root >> cd /opt/dockerfile/jenkins/02/

root >> docker build -f /opt/dockerfile/jenkins/02/jenkins-master-01.Dockerfile . -t registry.cn-hangzhou.aliyuncs.com/kevin_docker_registry/mirror_k8s_jenkins-master:2.194

root >> docker build -f /opt/dockerfile/jenkins/02/jenkins-master-02.Dockerfile . -t registry.cn-hangzhou.aliyuncs.com/kevin_docker_registry/mirror_k8s_jenkins-master:2.194-test

最后,我们检查结果

发现第二个dockerfile生成的镜像文件大小要比前者体积小300MB。

root >> docker images

附录:

如果需要,我们还可以将生成好的jenkins-master提交到阿里云的仓库,命令参考如下

root >> docker login --username=kevin@1522315893340281 registry.cn-hangzhou.aliyuncs.com/kevin_docker_registry/mirror_k8s_jenkins-master
root >> docker tag db8450d6f4f0 registry.cn-hangzhou.aliyuncs.com/kevin_docker_registry/mirror_k8s_jenkins-master:2.194
root >> docker push registry.cn-hangzhou.aliyuncs.com/kevin_docker_registry/mirror_k8s_jenkins-master:2.194

上传完毕后,登录阿里云仓库,查看镜像版本,如下

参考资料

https://www.cnblogs.com/ericnie/p/7991218.html

Dockfile 生成docker镜像文件大小的比较的更多相关文章

  1. jenkins自动打包生成docker镜像后自动发布并nginx代理访问

    之前曾写过docker及jenkins基础使用  https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jen ...

  2. Maven插件Jib配合Harbor生成Docker镜像

    1 说明 Maven插件Jib暂不支持https的自签名,因此只能配置以Http的方式访问Harbor私有仓库 以下基于SpringBoot2.x进行配置 2 Maven配置 2.1 pom.xml中 ...

  3. 使用maven插件dockerfile-maven-plugin生成Docker镜像并推送到镜像仓库

    1.引入maven插件 <build> <plugins> <plugin> <groupId>com.spotify</groupId> ...

  4. asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行

    1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加us ...

  5. maven 打包 spring boot 生成docker 镜像

    1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具 ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务 ...

  6. php7 安装yar 生成docker镜像

    Docker包含三个概念:(1)远程仓库即远程镜像库所有镜像的聚集地(不可进入操作).(2)本地镜像即从远程仓库拉取过来的镜像(3)运行起来的本地镜像叫做容器(分层的可操作)Docker使用:1.首先 ...

  7. 在docker hub,用github的dockerfile自动生成docker镜像

    简介: 我已经深深的爱上了docker技术. 在日常使用中,经常看到docker hub 中有很多autobuild的镜像.基本使用是在github中上传dockerfile,过一会儿,docker ...

  8. 如果想从jenkins直接生成docker镜像,并推送到harbor中,最简单的脚本如何实现?

    如果不考虑意外, 第一版最简单的构思如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import getopt, sys import subpro ...

  9. 给Ocelot做一个Docker 镜像

    写在前面 在微服务架构中,ApiGateway起到了承前启后,不仅可以根据客户端进行分类,也可以根据功能业务进行分类,而且对于服务调用服务也起到了很好的接口作用.目前在各个云端中,基本上都提供了Api ...

随机推荐

  1. Linux下安装jupyter

    又是美好的一天     开开心心写代码 1. 安装ipython, jupyter pip install ipython pip install jupyter 2. 生成配置文件[root@50e ...

  2. American daily English notes (enlarged edition): A review

    Life English is the most pragmatic kind of English when one wants to associate with foreigner friend ...

  3. java并发编程(二十五)----(JUC集合)LinkedBlockingDeque和ConcurrentLinkedDeque介绍

    Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque.这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂. LinkedBlockingDeque 我们 ...

  4. Sublime Text3激活及个性化配置

    [TOC] 在我们的开发过程中,选择正确的开发工具会让我们事半功倍.作为后端开发我们熟悉的myeclipse和itellij idea这些工具我也介绍曾介绍过关于他们的安装及破解.但是我们并不能仅仅使 ...

  5. 利用反射搭建orm框架

    1思路 根据java反射获取属性上的 注解的value的值 然后拼接成sql去执行 这就是完成了一个orm实体关系映射 package src.Test.Reflect;import java.lan ...

  6. 如何实现css渐变圆角边框

    最近设计师的风格发生突变,一句话概括就是,能用渐变的地方绝对不用纯色.这不,就整出了一个渐变圆角边框.这渐变好做,圆角好做,渐变圆角也没问题,可是在加个边框还是有点坑的.没办法,看看怎么实现吧 bor ...

  7. cs231n---生成模型

    1 生成模型的定义和分类 生成模型是一种无监督学习方法.其定义是给一堆由真实分布产生的训练数据,我们的模型从中学习,然后以近似于真实的分布来产生新样本. 生成模型分为显式和隐式的生成模型: 为什么生成 ...

  8. AUTOCAD二次开发-----删除一个图层里面的所有对象

    https://blog.csdn.net/aasswwe/article/details/40899759 private void Test() { // 获取当前文档和数据库 Document ...

  9. 十分钟入门流处理框架Flink --实时报表场景的应用

    随着业务的发展,数据量剧增,我们一些简单报表大盘类的任务,就不能简单的依赖于RDBMS了,而是依赖于数仓之类的大数据平台. 数仓有着巨量数据的存储能力,但是一般都存在一定数据延迟,所以要想完全依赖数数 ...

  10. Python模块之pysnooper

    一.简介 调试程序时,很多人喜欢直接用print来代替断点调试,而pysnooper模块比print更方便,以装饰器的形式存在 二.实验环境 操作系统:win10 python版本:python3.6 ...