在 docker 运行 tomcat 时无法访问 tomcat 管理器或任何其他默认 tomcat 应用程序

Cannot access tomcat manager or any other default tomcat app when running tomcat in docker

我正在尝试从主机访问 tomcat 管理器应用程序。端口发布成功,但在尝试访问 tomcat 管理器时出现 404 错误。

这是用于启动 tomcat 的命令:

docker container run -p 8010:8080 --name mytomcat tomcat:9.0

并尝试通过 url 访问它:

http://localhost:8010/manager

从日志中我可以确认 tomcat 是 运行,我可以从主机系统访问它,但是当访问管理器应用程序时,收到 404。

事实证明,从 Tomcat 版本 7 开始的所有 tomcat 图像的所有默认 tomcat 应用程序已从 webapps 目录中删除。 所有应用程序都已移至 /usr/local/tomcat/webapps.dist 目录,因此它们不会默认启动。你可以阅读它 here.

如果您仍想访问这些默认应用程序,您可以将它们复制回 webapps 目录,如果您愿意:

FROM tomcat:9.0
RUN mv /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/
CMD ["catalina.sh","run"]

或仅复制所需的应用。此外,您还必须编辑 tomcat 配置文件,以便在访问这些应用程序时不会收到 403。