docker 安装 tomcat 以及一些注意事项的管理

这个的一些配置其实在之前写的关于Docker的进阶内容中有,但是最近捣鼓了一下,发现还是有诸多问题,所以在此记录一下这次捣鼓的全过程以及如何解决这个问题的

基本安装配置

  1. 拉取tomcat 8.5.2版本

至于我为什么拉取的是这个版本,这里简单说明一下原因,就是最新版里的webapps文件夹是空的,以至于你一起动,打开8080端口网页就会发现找不到资源,而8.5.2版本却没有这个问题

docker pull tomcat:8.5.2
  1. 启动该镜像
docker run -it -p 8080:8080 tomcat:8.5.32

注:这里这样-it启动,代表着不是后台启动,会一直跑日志的那种,而且ctrl + z会取消运行,如果不想,就去掉

  1. 打开网页

附加配置

仅仅是上面的操作,还是会遗留下来2个问题

  • docker 启动 tomcat 太慢了,我想想,我没修改前,大概启动了接近1 - 2分钟,的确很慢了,一度让我以为是不是卡死了
  • 无法进入 ManagerApp 或者 Host Manager 后台进行管理

下面来一个个接近此问题

启动优化

其实说简单也简单,就是进去正在运行的容器改个文件配置,然后再将这个容器提交成一个镜像即可,然后跑这个镜像,再开一个容器,你就会发现,问题已经解决

  1. 进入正在运行的tomcat容器
docker exec -it 容器id/容器名字 /bin/bash
  1. 在容器中安装vim
apt-get update
apt-get install vim
  1. 修改对应的java.security文件
# 进入/docker-java-home/jre/lib/security/文件夹中
cd /docker-java-home/jre/lib/security/
# 修改此文件
vim java.security

​ 然后找到securerandom.source=file:/dev/random 将其修改为

securerandom.source=file:/dev/./urandom
  1. 就是退出,并且保存提交此容器成为镜像喽
exit
# 退出后
docker commit -a "Sakura" -m "tomcat start quickly" 此容器ID/名称  sakura/tomcat:1.2

注 - 这里还是解释下一些属性

  • -m : 注释,类似这次提交镜像的说明
  • -a : 我也忘了,尴尬,之后补,可以写一个名字,比如我写的就是Sakura,寓意樱花,或许是提交者名字?

然后再将提交上去的镜像运行,就会发现启动速度提升了非常多!!

后台管理

如果没有进行这一步,就会发现大大的403 Access Denied 错误

这里分为两步,其实也可能一步就好了,但是我的情况是做了两步才之得行的

1.添加一个用户?(寓意)

和之前一样,先进去容器中,然后修改conf/tomcat-users.xml文件,在前面添加如下代码:

<role rolename="manager-gui"/>
<user password="admin" roles="manager-gui" username="tomcat"/>

然后再重启tomcat,当然我这里又进行了一次提交镜像,不过先不急,下一步做了再提交也不迟,也可以先重新启动这个容器,看看改的效果,如果有效果下一步就不用进行了,如果没有,就继续

2. 访问ip受到限制

那么这次再接着上面对/webapps/manager/META-INF/context.xml文件进行修改,将里面的allow后面的内容修改掉,那部分代码就改成下面这样子

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" />

处理完后,再提交镜像

docker commit -a "Sakura" -m "tomcat have user and start quickly" optimistic_albattani  sakura/tomcat:1.5

再启动,就搞定了

总结

这次之所以用docker进行配置tomcat是因为不想其与wordpress竞争nginx,但是仔细一想,端口不冲突,或许不会,但是为了更好管理吧,而这次的操作,也是为了之后那个小型JavaWeb demo做铺垫,之前本来准备用 Vue + xxx来写的,但是涉及Node.js等,想想还是算了。

posted @ 2020-11-09 16:14  小喵钓鱼  阅读(404)  评论(0编辑  收藏  举报