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

 更新时间:2024年03月20日 11:10:30   作者:smilehjl  
这篇文章主要介绍了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运行成功但无法访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • .Net8项目使用docker、docker-compose部署的图文步骤

    .Net8项目使用docker、docker-compose部署的图文步骤

    本文主要介绍了.Net8项目使用docker、docker-compose部署的图文步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • docker 安装 Rabbitmq的基本步骤

    docker 安装 Rabbitmq的基本步骤

    在平常的开发工作中,我们经常会使用到 rabbitmq,rabbitmq 主要可以进行应用解耦、异步通信、流量削峰、负载均衡、消息持久化、死信队列等,这篇文章给大家介绍docker 安装 Rabbitmq的基本步骤,感兴趣的朋友一起看看吧
    2025-04-04
  • 云centos开启docker远程服务链接的实现步骤

    云centos开启docker远程服务链接的实现步骤

    本文主要介绍了云centos开启docker远程服务链接,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Docker中安装Redis并开启远程访问的详细步骤

    Docker中安装Redis并开启远程访问的详细步骤

    这篇文章主要介绍了Docker中安装Redis并开启远程访问的详细步骤,文中有详细的代码示例供大家参考,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2025-01-01
  • IDEA整合Docker的实现步骤

    IDEA整合Docker的实现步骤

    本文主要介绍了IDEA整合Docker的实现步骤,主要设置了远程连接,插件以及配置信息等,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 使用Docker容器化Flask应用的简单示例

    使用Docker容器化Flask应用的简单示例

    在当今的软件开发中,容器化技术已经变得不可或缺,Docker 作为容器化领域的佼佼者,为开发者提供了一种高效、便捷的方式来部署和运行应用程序,本文将通过一个简单的 Flask 应用示例,展示如何使用 Docker 将 Python 应用程序容器化,需要的朋友可以参考下
    2025-09-09
  • Docker利用busybox创建基础镜像(base image)

    Docker利用busybox创建基础镜像(base image)

    今天小编就为大家分享一篇关于Docker利用busybox创建基础镜像(base image),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Docker镜像的制作与使用浅析

    Docker镜像的制作与使用浅析

    这篇文章主要介绍了Docker镜像的制作与使用浅析的相关资料,需要的朋友可以参考下
    2022-11-11
  • Docker 部署开源远程桌面工具RustDesk的使用

    Docker 部署开源远程桌面工具RustDesk的使用

    本文介绍了RustDesk开源远程桌面工具的Docker部署使用方法,支持自建服务器,可实现安全私密的远程控制电脑,具有一定的参考价值,感兴趣的可以了解一下
    2024-10-10
  • 将strapi打包成docker镜像的步骤详解

    将strapi打包成docker镜像的步骤详解

    在这个指南中,我们将学习如何将 Strapi 应用程序打包成 Docker 镜像,解决多环境部署问题,文末也会提供打包好的镜像地址,让同学们能够直接使用,需要的朋友可以参考下
    2024-01-01

最新评论