From centos:7 MAINTAINER niejian@bluemoon.com.cn # OS 环境配置 RUN yum install -y wget #下载JDK并安装 RUN mkdir -p /var/tmp/jdk RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /var/tmp/jdk http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz RUN tar zxvf /var/tmp/jdk/jdk-8u181-linux-x64.tar.gz -C /var/tmp/jdk && rm -rf /var/tmp/jdk/jdk-8u181-linux-x64.tar.gz ## 安装tomcat RUN mkdir /var/tmp/tomcat RUN wget -P /var/tmp/tomcat http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz RUN tar zxvf /var/tmp/tomcat/apache-tomcat-8.5.34.tar.gz -C /var/tmp/tomcat/ && rm -rf /var/tmp/tomcat/apache-tomcat-8.5.34.tar.gz ## 设置环境变量 ENV JAVA_HOME /var/tmp/jdk/jdk1.8.0_181 ENV CATALINA_HOME /var/tmp/tomcat/apache-tomcat-8.5.34 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin #开启内部服务端口 EXPOSE 8080 #启动tomcat服务器 CMD ["./var/tmp/tomcat/apache-tomcat-8.5.34/bin/catalina.sh","run"] && tail -f /var/tmp/tomcat/apache-tomcat-8.5.34/logs/catalina.out
docker build -t jdk8-tomcat8 .
1.查看镜像信息java
root@admin157:/home/moon/jdk_base_dockerfile# docker images REPOSITORY TAG IMAGE ID CREATED SIZE jdk8-tomcat8 latest 5a24b1c96b5b 6 seconds ago 884 MB centos 7 5182e96772bf 6 weeks ago 200 MB
以上有7个RUN命令,而下面就使用哟个RUN命令就完成了打包的操做,打出来的镜像大小要小200M Dockerfile 中每个指令都会创建一层, RUN 也不例外。每个 RUN 的行为,就和刚才咱们手工创建镜像的过程同样:新创建一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。 而上面的这种写法,建立了 7 层镜像。这是彻底没有意义的,并且不少运行时不须要的东西,都被装进了镜像里,好比编译环境、更新的软件包等等。结果就是产生很是臃肿、很是多层的镜像,不单单增长了构建部署的时间,也很容易出错。 这是不少初学 Docker 的人常犯的一个错误linux
From centos:7 MAINTAINER niejian@bluemoon.com.cn # OS 环境配置 RUN yum install -y wget \ #下载JDK并安装 && mkdir -p /var/tmp/jdk \ && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /var/tmp/jdk http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz \ && tar zxvf /var/tmp/jdk/jdk-8u181-linux-x64.tar.gz -C /var/tmp/jdk && rm -rf /var/tmp/jdk/jdk-8u181-linux-x64.tar.gz \ ## 安装tomcat && mkdir /var/tmp/tomcat \ && wget -P /var/tmp/tomcat http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz \ && tar zxvf /var/tmp/tomcat/apache-tomcat-8.5.34.tar.gz -C /var/tmp/tomcat/ && rm -rf /var/tmp/tomcat/apache-tomcat-8.5.34.tar.gz ## 设置环境变量 ENV JAVA_HOME /var/tmp/jdk/jdk1.8.0_181 ENV CATALINA_HOME /var/tmp/tomcat/apache-tomcat-8.5.34 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin #开启内部服务端口 EXPOSE 8080 #启动tomcat服务器 CMD ["./var/tmp/tomcat/apache-tomcat-8.5.34/bin/catalina.sh","run"] && tail -f /var/tmp/tomcat/apache-tomcat-8.5.34/logs/catalina.out
root@admin157:/home/moon/compose_jdk_tomcat# docker images REPOSITORY TAG IMAGE ID CREATED SIZE jdk8-tomcat8-compress latest 3c03c936c80f 9 minutes ago 689 MB