Dockerfile制作tomcat镜像
Dockerfile制作tomcat镜像1.创建/home/docker目录,导入jdk和tomcat的压缩包文件2.编写Dockerfile文件,并且命名为Dockerfile。[root@iZwz9bpgwmtcokdzlg5sv0Z docker]# vim Dockerfile[root@iZwz9bpgwmtcokdzlg5sv0Z docker]# cat DockerfileFROM
·
Dockerfile制作tomcat镜像
1.创建/home/docker目录,导入jdk和tomcat的压缩包文件
2.编写Dockerfile文件,并且命名为Dockerfile。
[root@iZwz9bpgwmtcokdzlg5sv0Z docker]# vim Dockerfile
[root@iZwz9bpgwmtcokdzlg5sv0Z docker]# cat Dockerfile
FROM centos
MAINTAINER xiaohe<1687184886@qq.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u162-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.69.tar.gz /usr/local/
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_162
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.69
ENV CATALINA_BASH /usr/local/apache-tomcat-8.5.69
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.5.69/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.69/bin/logs/catalina.out
这里已经编写好了Dockerfile文件。ENV命令为配置jdk和tomcat的环境变量,WORKDIR命令为指定工作目录,即进入容器后显示的目录,EXPOSE命令为暴露该容器的8080端口,ADD命令则把需要的文件添加,这里运行镜像后他会自动解压到/usr/lcoal。
注意:Dockerfile文件中编写的所有命令关键字都是全大写!
3.使用build命令构建镜像
#注意这里的命令结尾一定要加上英文句号,否则会报错
#这里使用build命令之后它会自动寻找名为Dockerfile的镜像文件,所以这里不需要用-f参数,但是如果用其他命名则需要用-f指定
#这里的-t是指定镜像名字
[root@iZwz9bpgwmtcokdzlg5sv0Z mytomcat]# docker build -t diytomcat .
运行结果:
[root@iZwz9bpgwmtcokdzlg5sv0Z mytomcat]# docker build -t diytomcat .
Sending build context to Docker daemon 205.7MB
Step 1/14 : FROM centos
---> 5d0da3dc9764
Step 2/14 : MAINTAINER xiaohe<1687184886@qq.com>
---> Running in db0feb790afd
Removing intermediate container db0feb790afd
---> 95115ff4fa95
Step 3/14 : COPY readme.txt /usr/local/readme.txt
---> 576636be85ea
Step 4/14 : ADD jdk-8u162-linux-x64.tar.gz /usr/local/
---> bbfa8f69021a
Step 5/14 : ADD apache-tomcat-8.5.69.rar /usr/local/
---> 3a465837c2da
Step 6/14 : ENV MYPATH /usr/local
---> Running in 710e74e1e06b
Removing intermediate container 710e74e1e06b
---> 19a6512e66a8
Step 7/14 : WORKDIR $MYPATH
---> Running in 5c946a8a2b8a
Removing intermediate container 5c946a8a2b8a
---> 2f5582e94df1
Step 8/14 : ENV JAVA_HOME /usr/local/jdk1.8.0_162
---> Running in b431b1df7563
Removing intermediate container b431b1df7563
---> 37469a9d94e6
Step 9/14 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
---> Running in a4836d62dd96
Removing intermediate container a4836d62dd96
---> cb522bf1ec5c
Step 10/14 : ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.69
---> Running in e829ba3ca820
Removing intermediate container e829ba3ca820
---> 90de963f7d85
Step 11/14 : ENV CATALINA_BASH /usr/local/apache-tomcat-8.5.69
---> Running in 9dd2f2892eca
Removing intermediate container 9dd2f2892eca
---> 27dc0c0e9c03
Step 12/14 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
---> Running in 965bf00449c9
Removing intermediate container 965bf00449c9
---> 7d84b724668e
Step 13/14 : EXPOSE 8080
---> Running in e2bc0c41ef21
Removing intermediate container e2bc0c41ef21
---> a74107828eb2
Step 14/14 : CMD /usr/local/apache-tomcat-8.5.69/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.69/bin/logs/catalina.out
---> Running in d6a3ac2227db
Removing intermediate container d6a3ac2227db
---> 82bb367a999f
Successfully built 82bb367a999f
Successfully tagged diytomcat:latest
4.运行镜像
[root@iZwz9bpgwmtcokdzlg5sv0Z mytomcat]# docker run -it -p 81:8080 --name xiaohetomcat1 -v /home/xiaohe/build/tomcat/test:/usr/local/apache-tomcat-8.5.69/webapps/test -v /home/xiaohe/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-8.5.69/logs diytomcat
这里主机的81端口与容器内的8080端口形成映射,用服务器IP+81端口号则可以访问容器内的8080端口。两个-v分别把tomcat的webapps目录与logs目录与主机指定目录挂载,把项目挂载到主机内的目录就可以同步到容器内webapps目录,在主机内部署后则可以直接访问。
5.测试访问
在主机内的webapps目录中放置web.xml和简单的html页面,访问主机的81端口,观察是否能够访问。
本文章参考b站狂神Docker教学,具体请观看视频
https://www.bilibili.com/video/BV1og4y1q7M4?p=30
更多推荐
已为社区贡献1条内容
所有评论(0)