标签:镜像文件 Dockfile usr ENV HOME jenkins docker local
下面就是我针对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,usr,ENV,HOME,jenkins,docker,local 来源: https://www.cnblogs.com/itshare/p/11519836.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。