Dockerfile-编译自己的tomcat镜像

docker 体系架构
在这里插入图片描述

什么是镜像

文件和元数据的集合,镜像是分层的,不同的image 会共享相同的层,镜像本身是只读的。
在这里插入图片描述
Dockerfile
dockerfile 是用来构建 docker镜像的构建文件

docker镜像 docker容器 dockerfile 的关系如下:
在这里插入图片描述

用dockerfile构建自己的tomcat 镜像
/etc/docker 目录下创建文件 Dockerfile 并编辑内容如下:

 FROM centos
MAINTAINER eric<[email protected]>

ADD jdk-8u73-linux-x64.tar.gz  /usr/local
ADD apache-tomcat-8.5.38.tar.gz /usr/local

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.38
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.38
ENV JAVA_HOME /usr/local/jdk1.8.0_73
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-8.5.38/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.5.38/logs/catalina.out

然后 在docker目录下运行 docker build . 将dockerfile编译成镜像,

[root@zk01 docker]# docker build .
Sending build context to Docker daemon   191 MB
Step 1/13 : FROM centos
 ---> 9f38484d220f
Step 2/13 : MAINTAINER eric<[email protected]>
 ---> Using cache
 ---> 84e17e137cc5
Step 3/13 : ADD jdk-8u73-linux-x64.tar.gz /usr/local
 ---> Using cache
 ---> 47d1ff3a59c5
Step 4/13 : ADD apache-tomcat-8.5.38.tar.gz /usr/local
 ---> Using cache
 ---> e7d9a5b89b70
Step 5/13 : ENV MYPATH /usr/local
 ---> Using cache
 ---> 9e5ea821a611
Step 6/13 : WORKDIR $MYPATH
 ---> Using cache
 ---> 38598b02a553
Step 7/13 : ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.38
 ---> Using cache
 ---> 657375d3a952
Step 8/13 : ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.38
 ---> Using cache
 ---> d70675638f46
Step 9/13 : ENV JAVA_HOME /usr/local/jdk1.8.0_73
 ---> Running in dc1c6e7541a7
 ---> 69be0f3e0b5d
Removing intermediate container dc1c6e7541a7
Step 10/13 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
 ---> Running in b9083aa9fdb8
 ---> 970de7c78bdd
Removing intermediate container b9083aa9fdb8
Step 11/13 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 ---> Running in 171d1618914f
 ---> c449a67f89c1
Removing intermediate container 171d1618914f
Step 12/13 : EXPOSE 8080
 ---> Running in ee46920fe307
 ---> 19bf1235b3ce
Removing intermediate container ee46920fe307
Step 13/13 : CMD /usr/local/apache-tomcat-8.5.38/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.5.38/logs/catalina.out
 ---> Running in 461b369a5ae8
 ---> cf9c27281799
Removing intermediate container 461b369a5ae8
Successfully built cf9c27281799

如下就是我刚编译好的镜像
在这里插入图片描述

然后运行 docker run -p:8070:8080 cf9c27281799 启动镜像 端口映射到 8070

[root@zk01 docker]# docker run -p:8070:8080  cf9c27281799 
Tomcat started.
22-Apr-2019 05:08:32.186 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.38
22-Apr-2019 05:08:32.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Feb 5 2019 11:42:42 UTC
22-Apr-2019 05:08:32.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.38.0
22-Apr-2019 05:08:32.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
22-Apr-2019 05:08:32.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-957.el7.x86_64
22-Apr-2019 05:08:32.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
22-Apr-2019 05:08:32.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/local/jdk1.8.0_73/jre

浏览器就可以访问,如下
在这里插入图片描述

坑:
jdk 压缩包jdk-8u73-linux-x64.tar.gz 解压后 目录为 jdk1.8.0_73 ,一开始dockerfile中写成了 jdk-8u73-linux-x64 一直找不到jdk。

猜你喜欢

转载自blog.csdn.net/zhangxm_qz/article/details/89406180
今日推荐