zoukankan      html  css  js  c++  java
  • 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等,想想还是算了。

  • 相关阅读:
    国密SM4,javaScript加密 java解密
    使用Nexus搭建Maven私服
    eclipse中使用Maven创建Web项目
    mysql报错码code=exited,status=2的解决方案
    Git出现 fatal: Pathspec 'xxx' is in submodule 'xxx' 异常的解决方案
    php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
    (转)Git操作
    apt update时出现签名无法验证,公钥失效的解决办法
    提交项目到Github
    分解关联查询
  • 原文地址:https://www.cnblogs.com/xmdykf/p/13949132.html
Copyright © 2011-2022 走看看