使用Hub中centos镜像、jdk包和tomcat包制作tomcat镜像
- 准备镜像文件tomcat压缩包,jdk压缩包。
- 编写dockerfile文件,使用官方命名Dockerfile,build时会自动寻找这个文件,不用-f指定了。
步骤
准备工作
将jdk,tomcat包放入/opt/soft文件夹下。
[root@localhost soft]# ls
Dockerfile jdk-8u291-linux-x64.tar.gz
apache-tomcat-8.0.50.tar.gz readme.txt
建立Dockerfile
vim Dockerfile写入:
FROM centos
MAINTAINER xuliu<liuxuecan@njust.edu.cn>
COPY readme.txt /usr/local/readmei.txt
ADD jdk-8u291-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.0.50.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_291
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.50
ENV CATALINA_BASH /usr/local/apache-tomcat-8.0.50
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.0.50/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.0.50/logs/catalina.out
建立镜像
# 建立镜像:
docker build -t diytomcat .
# 注意末尾有个.
# 查询镜像
[root@localhost home]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
diytomcat latest 0a3e0438fb4a 18 minutes ago 643MB
启动镜像,建立容器
[root@localhost soft]# docker run -d -p 9090:8080 --name lxctomcat -v /opt/soft/liuxuecan/build/tomcat/webapps:/usr/local/apache-tomcat-8.0.50/webapps -v /opt/soft/liuxuecan/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-8.0.50/logs diytomcat
# 指定卷,test与log,-d运行
[root@localhost soft]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e916db178c79 diytomcat "/bin/sh -c '/usr/lo…" 6 minutes ago Up 6 minutes 0.0.0.0:9090->8080/tcp, :::9090->8080/tcp lxctomcat
[root@localhost test]# docker exec -it e916db178c79 /bin/bash
[root@e916db178c79 local]#
访问测试(宿主机中)
[root@localhost logs]# curl localhost:9090
发布项目(由于做了卷挂载,我们直接在本地编写项目)
发布项目并测试:
将sample.war放到宿主机的webapps目录下,将会自动挂载到容器中的tomcat的webapps中。
宿主机中:
容器中:
sample.war包运行结果:
日志挂载查看:
宿主机中:
容器中:
直接使用docker hub中的镜像
这是别人做好的镜像,类似我们之前做的镜像diytomcat
。
很简单,拿过来直接用就行。用法也与使用diytomcat
一样。
可参考我的另一篇文章:windows docker中部署tomcat。
文章如下:
https://blog.csdn.net/weixin_44992654/article/details/117781363