首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在docker图像中创建的.war文件在浏览器中不起作用?(Java-Servlets、Tomcat、Docker)

在Docker容器中创建的.war文件在浏览器中不起作用的原因可能有多个方面:

  1. 缺少Web服务器:Docker容器中默认是没有安装Web服务器的,而.war文件通常需要在Web服务器中才能正常运行。在Java Servlets应用中,常用的Web服务器是Apache Tomcat。所以需要在Docker容器中安装和配置Tomcat服务器,以确保.war文件能够正常运行。可以使用以下命令在Docker容器中安装Tomcat:
代码语言:txt
复制
$ apt-get update
$ apt-get install -y tomcat8
  1. 配置问题:即使安装了Tomcat服务器,也需要正确配置服务器以部署和运行.war文件。主要的配置文件是server.xmlweb.xml。在server.xml文件中,需要确保Tomcat监听正确的端口并且部署路径正确。在web.xml文件中,需要配置正确的Servlet和URL映射。另外,还需要检查是否有其他配置问题,例如文件权限等。
  2. 缺少Java运行时环境:Java应用程序需要在Java运行时环境(JRE)或Java开发工具包(JDK)中才能运行。在Docker容器中,确保安装了Java并正确配置了环境变量。
  3. Docker容器网络设置:Docker容器默认使用网络隔离,可能导致容器内的服务无法通过网络访问。确保Docker容器的网络设置正确,例如使用端口映射将容器内的Tomcat端口映射到主机的某个端口上。

综上所述,要解决在浏览器中无法运行.war文件的问题,需要安装和配置Tomcat服务器、正确配置服务器和应用程序的相关文件、安装Java运行时环境,并确保Docker容器的网络设置正确。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么 strace 在 Docker 中不起作用?

在编辑“容器如何工作”爱好者杂志的能力页面时,我想试着解释一下为什么 strace 在 Docker 容器中无法工作。...这里的问题是 —— 如果我在笔记本上的 Docker 容器中运行 strace,就会出现这种情况: $ docker run -it ubuntu:18.04 /bin/bash $ # ... install...所以,绝对没有理由不能够对它创建的进程进行 strace!...而 ptrace 在被 Docker 默认的 seccomp 配置文件阻止的系统调用列表中!(实际上,允许的系统调用列表是一个白名单,所以只是ptrace 不在默认的白名单中。...但得出的结果是一样的。) 这很容易解释为什么 strace 在 Docker 容器中不能工作 —— 如果 ptrace 系统调用完全被屏蔽了,那么你当然不能调用它,strace 就会失败。

6.4K30

Windows里golang交叉编译Linux文件在docker里的centos中运行

此时编译出来的可执行文件带exe扩展名。对于Linux系统是没所谓的。 ?...> #启动新容器,并且进行端口映射 docker run -itd -p 50001:22 的镜像ID> /bin/bash 进入容器后再运行ssh 好了,这样我们在windows下利用ssh...4.在centos中执行文件 把应用上传到centos系统的root文件夹下 再回到SecureCRT ? 输入ls -l列出当前目录下的文件。...其中ls是list,也就是列出的意思,-l参数是long的意思,也就是列出文件详细信息,每行第一个字符带x的就是有可执行权限的文件,多半就是可执行程序。 使用./filename来执行, 如果输入....must have one register DataBase alias named `default` 无法执行是因为应用中引用了基于cgo的sqlite3,而cgo不能跨平台,最好是在Linux系统中搭建环境进行编译

2.8K10
  • 【云原生 • Docker】mysql、tomcat、nginx、redis 环境部署

    远程登录 MySQL 容器创建完成之后,就可以在本地进行 MySQL 连接了;如下图在本地的 Navicat 中新建一个连接: 要知道我们并不是直接去连接容器中的 MySQL,而是通过宿主机进行连接。...此时所连接的正是我们刚刚所创建的容器中的 MySQL; Docker 下 MySQL 部署完成! 二、Tomcat 部署 1....创建容器 docker run -di --name=mynginx -p 80:80 nginx 创建成功我们在本地浏览器访问宿主机 IP,可以看到 nginx 欢迎界面; 3....部署应用 我们这里将一个静态页面部署到 nginx 中,如下我在本地创建了一个 html 文件夹 和 index.html 文件; 将它上传至我们的宿主机; 进入 nginx 容器; docker...exec -it mynginx /bin/bash 找到配置文件 default.conf,可以看到 nginx 的页面文件是保存于 /usr/share/nginx/html/ 中的; 所以我们将需要部署的页面文件移动到此目录

    93220

    实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署

    最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7-...maven-plugin插件,可以直接在maven上编译,打包,部署一次性完成,这个方法的关键是在tomcat上创建一个用户账号,然后maven插件用此账号和密码来执行在线部署。...本次实践中,我们要动手制作一个镜像,这个镜像run起来后是个tomcat server,这个server支持maven插件在线部署war应用。...创建一个空文件夹,例如image_tomcat; 2....ok,tomcat7-maven-plugin插件已经帮我们把war部署到docker容器上去了,在浏览器输入 http://localhost:8080/loadbalancedemo/hello?

    3.1K50

    docer实战

    数据卷:将宿主机的一个目录映射到容器的一个目录中。 可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。...Docker会帮你自动创建,会将容器内部自带的文件,存储在默认的存放路径中。 第二种:通过路径映射数据卷,直接指定一个路径作为数据卷的存放位置。但是这个路径下是空的。...-jre8 copy wyy-music-1.0-SNAPSHOT.war /usr/local/tomcat/webapps # 在root目录下创建一个目录,然后把Dockerfile文件和video-web.war...管理MySQL和Tomcat容器 yml文件以key: value方式来指定配置信息 多个配置信息以换行+缩进的方式来区分 在docker-compose.yml文件中,不要使用制表符 docker...,在盘符下创建docker_ssm文件夹,在该目录下创建Dockerfile文件以及拷贝video-web.war 编写Dockerfile文件 from daocloud.io/library/

    5200

    Jenkins与Docker的自动化CICD实战

    在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署、交付(CD)。...操作系统:CentOS7.4 二、部署Git仓库 # yum install git -y 创建Git用户并设置密码 创建仓库 访问创建的这个仓库 在192.168.0.217...配置SSH插件 第一步:先创建一个用于连接Docker主机的凭据。...在Jenkins本机镜像构建与推送到镜像仓库,并SSH远程连接到Docker主机使用推送的镜像创建容器: 上图中,在Jenkins主机执行的Shell命令如下: REPOSITORY=192.168.0.219...若你在容器运维中,遇到容器方面的问题,可以给我微信↓。同样,若发现有任何纰漏,还请随时指正,相互学习,共同进步!

    74521

    docker入门使用

    拉取镜像 docker pull mysql:5.6 //拉取mysql5.6最新的一个版本 docker pull mysql //拉取mysql最新版本 ---- 安装/创建并运行 docker...run -d -p 3335:8080 --name tom01 tomcat:8 3335是外部—也就是浏览器访问的端口 8080是内部—程序里面写死的内部端口 tom01是:为该服务起一个名字 tomcat...:8是:运行本地镜像tomcat程序的8版本,可写ID 第4部中,如果本地没有,会直接拉取 进入 docker exec -it tom01 /bin/bash //进入运行中叫tom01的里面 tom01.../myweb.war 8175bbc72d70:/usr/local/tomcat/webapps myweb.war是你的上传程序名字 8175bbc72d70是运行中的ID /usr/local/...tomcat/webapps是要将myweb.war上传到的位置(会自动解压) 其他命令 文件方面: mkdir //创建文件夹 镜像方面: docker images //列出主机上已经拉取

    13730

    Docker搭建disconf环境,三部曲之三:细说搭建过程

    启动 定制mysql镜像 mysql定制:目的是让容器在创建时自动执行sql脚本,创建库和表,并导入初始化数据,在docker上实现数据库脚本自动执行的方法可以参照《让docker中的mysql启动时自动执行...创建两个文件夹,分别设置到ONLINE_CONFIG_PATH和WAR_ROOT_PATH这两个环境变量中,环境变量的设置方式在不同的操作系统下各不相同,我用的是mac,配置方式是在~/.bash_profile...这三个文件: jdbc-mysql.properties的改动如下图,主要是数据url改成一个固定的名字mysqlhost,这个在docker run的时候要和link参数中的别名一致,还有就是数据库的用户名密码...在环境变量WAR_ROOT_PATH对应的目录下,有个html文件夹如下图红框位置,这是web工程全部静态文件,把这个文件夹复制到刚才新建的nginx目录下: ?...启动完毕后,在浏览器上输入localhost,可以看见熟悉的disconf登录页面,用户名admin,密码admin,登录进去试试吧: ?

    1K70

    springboot使用war包的形式进行应用的发布部署

    我们看到我们的tomcat服务器还是在运行的,这次我们将自己的war包进行在tomcat进行部署了。关于文件如何上传到自己的服务器,推荐winScp工具进行上传,关于如何使用工具请自行搜索。...docker cp hello-war.war 自己的tomcat容器id:/usr/local/tomcat/webapps 好了,我们为了正确性,看下我们的war是否已经拷贝到对应的目录了吧,再次进入容器里面进行查找了...我们看到我们的hello-war包已经启动了,下面我们开始在我们的浏览器进行项目的访问了。...这里提示一下,tomcat的端口号默认是8080,但是自己将主机的端口10000映射为容器的8080端口上,所以我们在浏览器上访问是10000的端口,不过你们也可以根据自己的喜欢进行设定,需要了解如何设置的可以看下我之前发过的文章...我们看到上面的图片就是我们在示例程序中定义的信息,说明我们成功了,好了,本次需要分享的文章就到这里结束了

    76120

    Docker--创建tomcat+JDK镜像并发布web项目实例

    "] 2:使用Dockerfile构建镜像 准备工作: 新建一个文件夹docker_file(最好将dockerfile放在一个新的文件夹中,具体原因请看 文首url指向的博文) 。...将创建的Dockerfile文件放在该文件夹中,Dockerfile的文件名最好是“Dockerfile”,这样会默认查找到该文件,不用再进行指定文件。...在docker_file文件夹中放入你的web项目的war包。 最后该文件夹内容应该是如下图所示: ?...4:测试容器 容器启动后有时候容器中的tomcat还没有启动完毕,我们可以通过查看该容器的log来判断tomcat是否启动成功 docker logs 容器ID或者容器name 当我们在确认tomcat...启动成功后,在本地测试是否可以访问项目 ####在本机的浏览器中输入: ip:8080/xcar-index-web ####例如: 10.52.10.227:8080/xcar-index-web

    1.1K30

    Docker下的web开发和Tomcat部署

    可以看到tomcat启动的日志全部打印在终端了, 因为我们用-p 8888:8080将容器的8080端口映射到当前电脑的8888端口,所以打开当前电脑的浏览器,输入:localhost:8888,可以看到熟悉的大猫...: 接下来我们开发一个最简单的spring mvc应用,然后部署到docker的tomcat容器中试试,这我用的是IntelliJ IDEA CE,创建maven工程: GAV信息如下: 如下图所示...,在工程上点击右键查看module属性,如下图: 此时看到的信息如下图所示: 注意在上图的绿色框框位置,如果你的工程中没有看到绿色框框中的内容,就用鼠标右键点击红色框框位置,在弹出的菜单中点击"Sources...,如下图: 命令执行后,可以在target目录下看到war包: 现在我们把文件部署到tomcat上去,先建一个目录,例如我建了这个目录:/Users/bolingcavalry/temp/201703...此时,我们今天测试tomcat部署的目的已经达到了,接下来再试试提交镜像,在容器中输入exit 退出容器,再执行"docker stop helloworldwebapp"停止容器,然后执行以下命令把容器作为镜像保存在本地

    62050

    Docker下dubbo开发,三部曲之一:极速体验

    restart: always 然后用命令行在docker-compose.yml所在的目录下执行命令docker-compose up -d,启动yml文件中定义的四个容器,如下图: ?...把web应用部署到docker容器16_dubbo_consumer_1中(执行docker-compose up -d命令时创建的容器); 先确定zookeeper的ip,前面执行docker-compose...”则是PlatformService服务提供的(“dubbo_provider_tomcat“是dubbo_provider容器的环境变量,docker-compose.yml中设置的),都是dubbo_consumer...容器中的应用远程调用服务的结果; 留下疑问 以上就是dubbo服务的体验过程,看完本文,您是否会有这样的疑惑:dubbo_provider的部署很简单,把war包和tomcat做成一个镜像就能通过docker-compose...直接创建容器了,但dubbo_consumer为何要如此麻烦,自己下载源码、改参数、编译、部署,为什么不能像dubbo_provider那样直接做成镜像,那样的话体验起来不是更简单快捷么?

    1.1K70

    Docker学习笔记之二:web开发和Tomcat部署

    在hub.docker.com上搜索tomcat,搜索结果的第一个就是官方镜像,如下图: ?...可以看到tomcat启动的日志全部打印在终端了, ?...接下来我们开发一个最简单的spring mvc应用,然后部署到docker的tomcat容器中试试,这我用的是IntelliJ IDEA CE,创建maven工程: ? GAV信息如下: ?...注意在上图的绿色框框位置,如果你的工程中没有看到绿色框框中的内容,就用鼠标右键点击红色框框位置,在弹出的菜单中点击”Sources”,这样就把java目录加入到工程的编译目录中去了。...此时,我们今天测试tomcat部署的目的已经达到了,接下来再试试提交镜像,在容器中输入exit 退出容器,再执行”docker stop helloworldwebapp”停止容器,然后执行以下命令把容器作为镜像保存在本地

    1.1K110

    珂兰寺小课堂|Tomcat系列漏洞复现

    04 修复方法 在系统上以低权限运行Tomcat应用程序,创建一个专门的tomcat服务用户,该用户只能拥有一组最小权限; 增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置...之后,JSP文件中的代码将能被服务器执行。...1.1; /在文件名中是非法的,也会被去除(Linux/Windows) PUT /x.jsp/ HTTP/1.1; 大家自行进行测试 0x04 上传jsp文件获取shell 这里使用我们直接在上传文件后缀名后加...在docker的ROOT目录下新建文件用来测试是否可以成功读取,首先使用命令docker exec -it bin/bash进入到容器内,如下图所示: 4....04 修复建议 禁用AJP协议,在/conf/server.xml中编辑; 将Tomcat升级到更高的版本 END

    1.9K10

    CICD构建实验「建议收藏」

    的IP地址 systemctl restart docker \\重启docker 7)进入解压好的harbor文件中,编写vim harbor.yml,将hostname改为自己的地址 8)...需要新开一台服务器:192.168.53.30 安装 1)准备材料:jenkings主机上需要安装docker、tomcat、java文件等,其中,docker是为了进行部署,tomcat、jdk则是为了进行...的安装包拉进/usr/local的目录中,进入tomcat的bin目录下,输入..../startup.sh启动tomcat 5)为了不影响使用,需要将tomcat的webapps里的目录删除,只留ROOT 6)将.war包放入到ROOT下 7)将.war包用unzip解压 上述为源代码安装...ssh-copy-id gitme@192.168.53.20 10)根据内容提示cat /root/.jenkins/secrets/initialAdminPassword,来将密码复制粘贴并且放置在浏览器中

    81930
    领券