Docker Tomcat用户configuration不工作

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

问题:

Docker-tomcat已正确安装并正在运行,除了Manager App中的403 Access错误。 这也似乎是我的dockertomcat找不到我的tomcat-users.xmlconfiguration。

感谢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用户configuration(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> 

[步骤和命令]:

  1. 构buildDocker镜像

    dockerbuild设-t borgymanotoy /我的tomcat泊坞窗。

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

    docker run –name my-tomcat-docker-container -p 8088:8080 -it -d borgymanotoy / my-tomcat-docker

  3. 去容器的bash(通过bash检查容器内的文件)

    docker执行程序 – 它biyahe-tomcatdocker容器bash

首先,您需要在容器中公开应用程序,以便从dockerhost / network连接到它。

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

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

  1. /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" /> --> 

请注意评论部分。

  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" /> 

为了更改容器中的文件,您可以尝试构build自己的图像,但是我build议使用docker卷或绑定坐标。

请指定端口,当你做docker run像(我相信mine/tomcat-version是你的图像名称),

docker run -p 8000:8080 -it -d --name MyContainerName mine/tomcat-version

然后使用访问经理页面,

 http://<ipaddress>:8000/manager/html 

在docker中获取主机ip地址需要执行docker-machine ip

添加信息:您也可以使用下面的命令进入容器,

docker exec -it MyContainerName bash如果你想检查像tomcat日志,conf文件等不同的东西