docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效)

这篇具有很好参考价值的文章主要介绍了docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原因分析:

  1.     是否能访问当运行docker容器虚拟机(主机)地址
  2.     虚拟机对应的端口号是否开启或者防墙是否关闭
  3.     端口映射是否正确(这个是我遇到的)
  4.     tomcat下载的是最新版,docker运行后里面是没有东西的,会报404

一般都是这几个原因导致的明明docker容器运行成功了,但确无法正常访问

案例复现(以第三的原因为例):

首先,我在docker容器上运行一个tomcat容器

docker run  --name tomcat1 -p 8088:8088 -d 108db0e7c85e
 

查看容器是否运行成功:docker ps

docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效),docker,容器,运维

在浏览器中输入地址访问tomcat,发现失败

docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效),docker,容器,运维

出现这种无法访问的一般就是端口映射出现了问题了,如果报404则代表端口为问题,但里面没有数据

出现上面这种问题,有二中解决方法,一种是重新运行一个容器,另一种是进入docker容器中,改tomcat的端口号。

--name   容器名(可以自定义)   -p  主机ip:映射ip  -d  镜像名/镜像id

1 重新运行一个容器:docker run  --name tomcat2 -p 8089:8080 -d 108db0e7c85e

docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效),docker,容器,运维

2  进入那个不能访问的容器里面,修改tomcat端口号

        进入tomcat1容器内部: docker exec -it tomcat1 bash

这里操作难度会比较大,因为docker容器中无法使用vi和vim等文本编辑器,需要你自己下载

解决方法:

针对问题1:要实现确保你可以ping虚拟机的IP

针对问题2,查看虚拟机端口是否开发,不开放,则开放对应端口,或者直接禁用防火墙

针对问题3:要注意端口映射,主机端口可以自己定义,但容器映射的端口必须与应用的配置端口一样,列如nginx默认80,tomcat默认8080,如果已经运行了,不想删除容器,则可以进入容器内

修改应用端口号

针对问题4:最新版的tomcat是可以使用的,但是就是webapps中默认是没有内容的文章来源地址https://www.toymoban.com/news/detail-685238.html

到了这里,关于docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python安装pandas库,安装不成功原因分析及解决办法

    提示:pandas模块是基于Numpy模块开发的,它不仅能直观地展示数据的结构,还具备强大的数据处理和分析的功能。 pandas模块是基于Numpy模块开发的,它不仅能直观地展示数据的结构,还具备强大的数据处理和分析的功能,所以后面会用到该模块库,但是在利用常用的命令pip

    2024年02月04日
    浏览(38)
  • Es无法写入数据的原因分析

    原因一: ElasticSearch入“只读”模式,只允许删除。当ES数据所在目录磁盘空间使用率超过90%后,ES将修改为只读状态,所以初步判断是磁盘空间不足导致es自动关闭了索引的写功能,只能进行读取或者删除。 解决: 手动将 index.blocks.read_only_allow_delete 改成false 查看index.blocks.

    2024年02月07日
    浏览(44)
  • docker安装mysql容器创建成功但无法启动问题

    在我之前的文章里 使用docker安装mysql中在拉取了mysql:5.7版本的镜像后,使用了以下命令来创建容器,容器创建成功,但无法启动,如下: 执行创建命令后,docker ps 查看正在运行中的容器,显示为空, docker ps -a 查看,mysql容器已经创建成功,但是在创建好之后就退出了 鉴于上

    2024年02月12日
    浏览(31)
  • 解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示

    1.修改redis.conf配置文件参数 daemonize 为 no : 由于创建容器实例时,会进行容器数据卷挂载,因此可以直接在外部宿主机里面修改,docker会自动同步该文件到redis容器对应目录里面 2.删除之前创建的redis容器实例 3.复杂使用run命令,再次重新创建redis容器实例。会进行容器数据卷

    2024年02月20日
    浏览(41)
  • 路由器广域网地址无法获取原因分析及解决

    出现 路由器广域网地址 无法获取,即路由器页面上一直显示连接状态,IP地址无法的登录,导致无法正常上网。出现这种情况该如何解决呢?下面小编分享的是 路由器广域网地址无法获取 的解决方法。 首先你需要检查网吧路由器的WAN口指示灯是否已经亮起,如果WAN口指示灯

    2024年02月05日
    浏览(46)
  • 手机无法通过wifi上网的原因分析(路由器故障)

    手机软件及路由制式不兼容、布网不佳 目前,Wi-Fi上网越来越普及。根据Wi-Fi联盟统计的数据,近两年,全球Wi-Fi用户每年以20%的速度增长。同时,在中国,移动、联通、电信三大运营商共建设了100万处Wi-Fi热点。Wi-Fi联盟首席执行官Edgar Figueroa直言,目前国内运营商大力扩展

    2024年02月05日
    浏览(40)
  • python项目运行,导致内存越来越大的原因分析

    问题描述: 目前遇到的问题是这样的,爬虫程序部署到K8S服务器上运行,但是会过几个小时之后,程序就会被主动杀掉重启,原因是因为内存过载,超过K8S设置的4G。 程序运行现象分析: 在线下进行程序测试时,未让程序长时间运行(及4-5个小时),程序无异常则直接上测

    2023年04月08日
    浏览(39)
  • 阿尔法路由器无法Telnet的原因分析以及解决方法

      一、组网环境 在阿尔法路由器的组网环境中,当配置完成后,所有的业务运行正常,通过外网或者阿尔法A上可以Ping通阿尔法B,但是无法Telnet到阿尔法B,如果先从外网登陆上,则能够Telnet到路由器。 二、故障分析 1、分析Telnet与Ping的区别在于:Ping可以直接在阿尔法B接口

    2024年02月05日
    浏览(34)
  • vivado 在线逻辑分析仪 ila 无法打开的原因

    报错信息: 报错原因: 没有时钟触发信号。可能由于时钟触发信号为 有产生条件的,导致此时没有时钟信号,从而无法正常运行ILA进行信号抓取。 尤其是在使用了PLL产生的时钟时,有可能复位信号出错,导致PLL的输出时钟不存在。 解决方式 更换时钟信号,或者检查时钟信

    2024年02月11日
    浏览(37)
  • docker容器内部可以访问,外部无法访问

    外部无法访问nginx :将docker容器部署后台运行后,发现无法通过ip(宿主机ip地址,可以通过ifconfig去查看eno***的inet地址便可,也可直接填写localhost):80(例如: localhost:80 )去访问却发现访问失败 内部访问成功 :于是我想先看看docker内部是否可以访问得到,先检查nginx是否开

    2023年04月08日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包