接下来将编写一个Tomcat的Dockerfile文件,以此构建一个Docker镜像,并基于该镜像启动得到一个Tomcat容器,最后试着在该容器中部署一个测试项目
思路:
- 基于centos镜像,配置一个jdk环境和tomcat环境,并进行环境变量的配置
1 jdk和tomcat下载
自行到网上下载jdk和tomcat的安装包,并上传到自己的服务器的任意目录下,如下图,我这里放在了/opt/web_app/docker_test目录下:
2 编写Dockerfile文件
在jdk和tomcat的安装包的同级目录也就是/opt/web_app/docker_test目录下,编写Dockerfile文件。
注:编写的Dockerfile文件的命名,最好就叫做
Dockerfile
,官方推荐的命名方式就是Dockerfile
,这么命名,那么在使用docker build构建的时候,就会自动去寻找这个文件,而不需要使用-f去指定了文件!
Dockerfile文件的内容如下:
FROM centos
#声明镜像是谁写的
MAINTAINER suhaha<suhaha@sinoiov.com>
#从本地将jdk和tomcat的压缩包,复制到容器的/usr/local目录下去,并自动解压
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.54.tar.gz /usr/local
#声明工作目录,并通过WORKDIR命令,切换到工作目录
ENV MYPATH /usr/local
WORKDIR $MYPATH
#环境变量设置,最终将java和tomcat都配置到PATH中
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:#JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.54
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.54
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#使用RUN命令,通过yum安装一些日常的常用工具
RUN yum -y install vim
RUN yum -y install net-tools
#对外暴露8080端口
EXPOSE 8080
#执行tomcat的启动命令,并通过tail -f命令,持续跟踪日志输出
CMD /usr/local/apache-tomcat-9.0.54/bin/startup.sh && tail -f /usr/local/apache-tomcat-9.0.54/bin/logs/catalina.out
3 构建
使用如下命令构建
docker build -t my-diy-tomcat .
构建日志如下:
[root@VM-8-5-centos web_app]# docker build -t my-diy-tomcat .
Sending build context to Docker daemon 197.2MB
Step 1/15 : FROM centos
---> 5d0da3dc9764
Step 2/15 : MAINTAINER suhaha<suhaha@sinoiov.com>
---> Running in 0b9bccd0217d
Removing intermediate container 0b9bccd0217d
---> a97454015399
Step 3/15 : ADD jdk-8u181-linux-x64.tar.gz /usr/local
---> fc5754e8aa9d
Step 4/15 : ADD apache-tomcat-9.0.54.tar.gz /usr/local
---> b804f9920f02
Step 5/15 : ENV MYPATH /usr/local
---> Running in c69d11a02e1d
Removing intermediate container c69d11a02e1d
---> 65fd2b51b346
Step 6/15 : WORKDIR $MYPATH
---> Running in 89ffdb849840
Removing intermediate container 89ffdb849840
---> ff9bf6740a9f
Step 7/15 : ENV JAVA_HOME /usr/local/jdk1.8.0_181
---> Running in cb3e97f0f5c3
Removing intermediate container cb3e97f0f5c3
---> 86e4466b3027
Step 8/15 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:#JAVA_HOME/lib/tools.jar
---> Running in f5f0a404edd8
Removing intermediate container f5f0a404edd8
---> 319cf44a7329
Step 9/15 : ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.54
---> Running in 10bd17f04960
Removing intermediate container 10bd17f04960
---> 2ee589f0ba3b
Step 10/15 : ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.54
---> Running in 0d94d8c3b3bd
Removing intermediate container 0d94d8c3b3bd
---> cbc2b4c9bad3
Step 11/15 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
---> Running in 2703da794149
Removing intermediate container 2703da794149
---> af6be7727c8a
Step 12