Docker 下自定义安装 Tomcat

服务器环境建好以后,如果要扩展,只需要执行(详细命令到下文中找)
docker run .....
发完版本需要重启服务,执行(详细命令到下文中找)
docker restart [容器的ID]

将文件传到 tomcat 下,可参考  Docker cp 将宿主机上的文件复制到容器中


 

准备文件

apache-tomcat-9.0.31.tar.gz

jdk-8u191-linux-x64.tar.gz


 CentOS上安装Docker。

1.检查内核版本,返回的值大于3.10即可。、
$ uname -r

安装 Docker 

yum -y install docker


 

将tomcat 、jdk 传到 /usr/local/docker目录中

 在java、jdk同级目录下,创建 Dockerfile 文件,文件名不能错,否则后面 build 会检测不到

[root@localhost ~]# cd /usr/local/docker/

[root@localhost docker]# touch Dockerfile 

 

 

Dockerfile 文件内容如下

FROM         centos
MAINTAINER    ChenJun
#把java与tomcat添加到容器中
ADD ./jdk-8u191-linux-x64.tar.gz /usr/local/
ADD ./apache-tomcat-9.0.31.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.31
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.31
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE  8080
#启动时运行tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-9.0.31/bin/startup.sh" ]
# CMD ["/usr/local/apache-tomcat-9.0.31/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.31/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.31/bin/logs/catalina.out

构建

#点表示当前目录 ,也可以直接指定  docker build -t tomcat9 /usr/local/docker

[root@localhost docker]# docker build -t tomcat9 . 

 如果显示超时,可以重启一下 systemctl restart docker

 构建成功后,如处图 

 

启动docker 加上 webapp、logs目录映射

[root@localhost web]# docker run -d -p 9091:8080 --name tomcat9091 -v /opt/web/tomcat9091/webapps:/usr/local/apache-tomcat-9.0.31/webapps -v /opt/web/tomcat9091/logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true tomcat9

[root@localhost web]# docker run -d -p 9092:8080 --name tomcat9092 -v /opt/web/tomcat9092/webapps:/usr/local/apache-tomcat-9.0.31/webapps -v /opt/web/tomcat9092/logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true tomcat9

 

创建映射后,会自动的在 宿主机上建立相应的目录(tomcat webapps下面原有的目录不会映射过来,不知道为什么,通过 docker exec ... 进去看的时候,容器webapps里面也没有文件

 

 

 

 测试Tomcat

建个测试的war包

 

 

 

 war 包上传到 9091下面,如果不加 test是不会显示的。默认带小猫的页面,不在本地的 webapps下面

 

 

 

 

 

 

 

 

 

 

 

 有时候war包放上去,需要重新服务。这时候可以用命令重启

docker restart [容器的ID]

 查看容器中的内容

[root@localhost docker]# docker exec 07de30dd6e3c ls -l

 

posted @ 2020-03-09 15:20  VipSoft  阅读(1683)  评论(0编辑  收藏  举报