如何在docker容器的tomcat 7中部署war文件

时间:2017-09-05 10:40:32

标签: java docker tomcat7

我不知道如何在docker容器的帮助下将war文件部署到tomcat 7中。

在Windows操作系统中很容易,因为我们手动将项目的war文件粘贴到tomcat的webapps文件夹中,但是对于docker容器,它有点困难。

由于docker容器的目录结构,我不知道如何更改tomcat的端口并在docker的tomcat-users.xml文件中添加角色管理器。以及如何在docker中使用新更改的端口号启动tomcat。

2 个答案:

答案 0 :(得分:4)

最简单的方法是使用带有-v的卷参数(docker run)使webapps目录和tomcat-users.xml文件保留在主机文件系统上,而不是容器一。

例如,在Linux主机上:

  • 创建一个名为/tmp/tomcat-users.xml的文件,其中包含符合您需求的正确内容;
  • 然后,创建一个名为/tmp/webapps
  • 的空目录

现在,以这种方式运行容器:

docker run -it --rm -p 8888:8080 -v /tmp/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro -v /tmp/webapps:/usr/local/tomcat/webapps:rw tomcat:7

然后,由于容器在前台启动,连接到另一个shell(另一个窗口)并将war文件复制到/ tmp / webapps。 它将自动部署。

例如,在Windows主机上:

  • 创建一个名为c:\tmp\tomcat-users.xml的文件,其中包含符合您需求的正确内容;
  • 然后,创建一个名为c:\tmp\webapps
  • 的空目录

现在,以这种方式运行容器:

docker run -it --rm -p 8888:8080 -v //c/tmp/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro -v //c/tmp/webapps:/usr/local/tomcat/webapps:rw tomcat:7

然后将war文件复制到c:\tmp\webapps。它将自动部署。

答案 1 :(得分:0)

对于 2021 年 3 月,在 Windows Docker 上使用单个命令行解决方案,试试这个:

docker run --name YourApp -v "c/WarFiles/YourApp.war:/usr/local/tomcat/webapps/YourApp.war" -it -p 9090:8080 tomcat:7

然后在 http://localhost:9090/YourApp 上打开您的应用

注意卷中的“双引号”和带有“Linux”斜杠的 c 驱动器 / 以使其工作。