docker容器运行成功但无法访问的原因分析及解决方案(以Tomcat为例亲测有效)
原因分析:
- 是否能访问当运行docker容器虚拟机(主机)地址
- 虚拟机对应的端口号是否开启或者防墙是否关闭
- 端口映射是否正确(这个是我遇到的)
- tomcat下载的是最新版,docker运行后里面是没有东西的,会报404
一般都是这几个原因导致的明明docker容器运行成功了,但确无法正常访问
案例复现(以第三的原因为例):
首先,我在docker容器上运行一个tomcat容器
docker run --name tomcat1 -p 8088:8088 -d 108db0e7c85e
查看容器是否运行成功:
docker ps

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

出现这种无法访问的一般就是端口映射出现了问题了,如果报404则代表端口为问题,但里面没有数据
出现上面这种问题,有二中解决方法,一种是重新运行一个容器,另一种是进入docker容器中,改tomcat的端口号。
--name 容器名(可以自定义) -p 主机ip:映射ip -d 镜像名/镜像id
1 重新运行一个容器:docker run --name tomcat2 -p 8089:8080 -d 108db0e7c85e

2 进入那个不能访问的容器里面,修改tomcat端口号
进入tomcat1容器内部: docker exec -it tomcat1 bash
这里操作难度会比较大,因为docker容器中无法使用vi和vim等文本编辑器,需要你自己下载
解决方法:
针对问题1:要实现确保你可以ping虚拟机的IP
针对问题2,查看虚拟机端口是否开发,不开放,则开放对应端口,或者直接禁用防火墙
针对问题3:要注意端口映射,主机端口可以自己定义,但容器映射的端口必须与应用的配置端口一样,列如nginx默认80,tomcat默认8080,如果已经运行了,不想删除容器,则可以进入容器内
修改应用端口号
针对问题4:最新版的tomcat是可以使用的,但是就是webapps中默认是没有内容的
到此这篇关于docker容器运行成功但无法访问的原因分析及解决方案(以Tomcat为例亲测有效)的文章就介绍到这了,更多相关docker运行成功但无法访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Docker自定义JDK镜像并拉取至阿里云镜像仓库超详细攻略
Docker仓库是集中存放镜像的地方,分为公共仓库和私有仓库,这篇文章主要给大家介绍了关于Docker自定义JDK镜像并拉取至阿里云镜像仓库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下2024-08-08
解决Docker启动Elasticsearch7.x报错的问题
这篇文章主要介绍了解决Docker启动Elasticsearch7.x报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11
docker安装tomcat并部署Springboot项目war包的方法
这篇文章主要介绍了docker安装tomcat并部署Springboot项目war包的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-11-11
解决docker报错:docker:invalid reference format.
在导入镜像的时候出现问题:invalid reference format,这里总结下,这篇文章主要给大家介绍了关于解决docker报错:docker:invalid reference format的相关资料,需要的朋友可以参考下2024-01-01
Docker 安装Tomcat、实现Tomcat集群的详细过程
这篇文章主要介绍了Docker安装Tomcat、实现Tomcat集群,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-06-06


最新评论