当前位置: 首页 > 知识库问答 >
问题:

Docker Tomcat用户配置不工作

汝岳
2023-03-14

更新:清理并直接指出问题和解决方案。

问题:

Docker-tomcat已正确安装并运行,但Manager应用程序中的403访问错误除外。我的docker tomcat似乎也找不到我的tomcat-users.xml配置。

解决方案

感谢Farhad和Sanket的回答。

[文件]:

DockerFile

FROM tomcat:8.5.11
MAINTAINER Borgy Manotoy <borgymanotoy@ujeaze.com>

# Update Apt and then install Nano editor (RUN can be removed)
RUN apt-get update && apt-get install -y \
    nano \
&& mkdir -p /usr/local/tomcat/conf

# Copy configurations (Tomcat users, Manager app)
COPY tomcat-users.xml /usr/local/tomcat/conf/
COPY context.xml /usr/local/tomcat/webapps/manager/META-INF/

Tomcat用户配置(conf/tomcat-users.xml)

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="admin" password="password" roles="manager-gui,manager-script" />
</tomcat-users>

应用程序上下文(webapps/manager/meta-inf/Context.xml)

<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
  <!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  -->
</Context>

[步骤和命令]:

>

  • 生成Docker映像

    docker build-t borgymanotoy/my-tomcat-docker。

    运行映像(my-tomcat-docker并将端口设置为8088)

    docker运行--name my-tomcat-docker-container-p 8088:8080-it-d borgymanotoy/my-tomcat-docker

    转到容器的bash(通过bash检查容器内的文件)

    docker Exec-IT biyahe-tomcat-docker-container bash

  • 共有1个答案

    微生智刚
    2023-03-14

    首先您需要在容器中公开您的应用程序,这样您就可以从DockerHost/Network连接到它。

    docker run -d -p 8000:8080 tomcat:8.5.11-jre8
    

    您需要更改2个文件,以便从远程主机访问mangaer应用程序。(Docker主机上的浏览器被认为是远程的,只有在containers环回上接收的数据包才被认为是tomcat的本地的)

    >

  • /usr/local/tomcat/webapps/manager/meta-inf/context.xml注意注释部分。

    <Context antiResourceLocking="false" privileged="true" >
    <!--
         <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
    -->
    

    请注意评论部分。

    /usr/local/tomcat/conf/tomcat-users.xml

    <tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="admin" password="password" roles="manager-gui,manager-script" />
    

    null

    为了对容器中的文件进行更改,您可以尝试构建自己的映像,但我建议使用docker卷或绑定挂载。

    还要确保重新启动容器,使更改生效。

  •  类似资料:
    • 你好stackoverflow社区! 当我尝试在debian服务器上安装并配置phpmyadmin时,总是会收到此错误消息。 这里是它的截图 我正在使用:debian版本:9;MySql版本:8.0.19 我尝试的内容: 删除phpmyadmin并重新安装 尝试另一条语句授予用户权限 我希望你能帮助我解决我的问题,因为我一直在苦苦挣扎。 提前谢谢你

    • 配置文件分为用户级配置和项目级配置。 用户级配置包含用户的环境及 UI 相关的选项,包括: 用户选项 中的所有内容。 扩展工具,包括已配置的扩展列表。 其他工具中的UI相关选项,例如 Target 组件下 站点地图 的选定视图。 项目级配置包含在特定目标应用程序上执行的工作相关的选项,包括: 项目选项中的所有内容。 单个Burp工具中的非UI相关选项,例如 代理 (Proxy) 和 扫描器 (Sc

    • 那是我学习Kafka的初期。我正在检查我本地机器中的每一个Kafka属性/概念。 所以我遇到了属性,下面是我的理解。如果我误解了什么,请纠正我。 将消息发送到主题后,必须将消息写入至少关注者数。 还包括引导。 如果可用活动代理的数量(间接地,在同步副本中)少于指定的,则生产者将引发发布消息失败的异常。 以下是我创建上述场景所遵循的步骤 在本地启动了3个代理,代理ID为0、1和2 创建了主题insy

    • 当用户在执行某些操作时,我们可以给用户设置积分和金币奖励,这里我们就可以在应用中给用户定义各种操作。 定义用户操作点 我们只要在我们的代码中添加cmf_user_action函数就可以了 cmf_user_action("login"); 添加用户操作配置文件 在每个应用下有个user_action.php配置文件,这个文件定义此应用所有的用户操作配置 如: <?php return [

    • 当用户在执行某些操作时,我们可以给用户设置积分和金币奖励,这里我们就可以在应用中给用户定义各种操作。 定义用户操作点 我们只要在我们的代码中添加cmf_user_action函数就可以了 cmf_user_action("login"); 添加用户操作配置文件 在每个应用下有个user_action.php配置文件,这个文件定义此应用所有的用户操作配置 如: <?php return [

    • 但就是不管用。我也试过在-d中使用这个选项,但这也不起作用。 谢谢你的帮助