Docker安装Tomcat无法访问的问题及解决

 更新时间:2023年07月11日 14:19:24   作者:普通网友  
这篇文章主要介绍了Docker安装Tomcat无法访问的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

问题出现

在服务器上使用docker安装tomcat时遇到了无法访问tomcat的问题。

是因为使用docker pull tomact 下载的tomcat镜像中包含有两个webapps 文件夹。

一个文件夹名为webapps,但是这个文件夹是空的,另外一个文件夹名为webapps.dist,里面有tomcat完整的文件夹和文件。

图示:

在这里插入图片描述

问题重现

1、使用docker下载tomcat镜像

docker pull tomcat:9

图示:

在这里插入图片描述

2、创建tomcat容器

docker run -d -p 8080:8080 tomcat:9

图示:

在这里插入图片描述

3、tomcat容器已经运行,但是还是无法访问tomcat的首页。

在这里插入图片描述

4、立刻查看防火墙端口和ECS安全组的情况。

查看防火墙状态

systemctl status firewalld

开启防火墙

systemctl start firewalld

查看端口信息

firewall-cmd --list-ports  # 只看端口信息

开启端口和重启防火墙

  • 开端口命令:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • 重启防火墙:
systemctl restart firewalld.service

查看安全组情况

在这里插入图片描述

注意:防火墙8080 端口开了并且阿里云安全组也开放了才能访问远程。

5、以上步骤都没问题,进入容器内部,发现两个webapps。

docker exec -it 53724a20a48c /bin/bash

其中webapps文件夹为空,而webapps.dist包含完整的tomcat文件。

在这里插入图片描述

6、将目录下webapps.dist里文件复制到webapps。

然后将webapps.dist删除.

cp -r webapps.dist/* ./webapps
rm -rf webapps.dist

7、结果

在这里插入图片描述

注意

tomcat容器停止重新启动后,还会出现这两个文件夹。

解决方案

对于以上出现的问题,可以通过commit操作创建自己的镜像就可以完美的避开此类情况的出现。

docker commit 从容器创建一个新的镜像。

语法:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS说明:

  • -a 提交的镜像作者
  • -c 使用Dockerfile指令来创建镜像
  • -m 提交时的说明文字
  • -p 在commit时,将容器暂停

操作步骤

1、创建镜像

docker commit -a="guardwhy" -m="kobe is mvp" 53724a20a48c tomcat9:9.1

图示:

在这里插入图片描述

2、创建tomcat容器

docker run -d -p 8081:8080 6b8b40011890

3、进入到容器内部查看。

docker exec -it 459677594ee1  /bin/bash

图示:

在这里插入图片描述

4、结果

在这里插入图片描述

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker部署高斯数据库的详细步骤

    docker部署高斯数据库的详细步骤

    文章详细介绍了如何在Docker中部署高斯数据库(openGauss),包括安装Docker、拉取镜像、运行容器、设置环境变量和挂载数据卷等步骤,还提供了连接和配置远程连接的指导,感兴趣的朋友一起看看吧
    2024-12-12
  • 在WSL中安装Docker的两种方法步骤

    在WSL中安装Docker的两种方法步骤

    Docker是一种开源的容器化平台,用于构建、交付和运行应用程序,它提供了一种轻量级的容器化技术,可以将应用程序及其依赖项打包成一个独立的可执行单元,这篇文章主要介绍了在WSL中安装Docker的两种方法步骤,需要的朋友可以参考下
    2025-12-12
  • docker在win10家庭版下构建laravel开发环境的教程详解

    docker在win10家庭版下构建laravel开发环境的教程详解

    这篇文章主要介绍了docker在win10家庭版下构建laravel开发环境,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Gitlab-runner+Docker实现自动部署SpringBoot项目

    Gitlab-runner+Docker实现自动部署SpringBoot项目

    这篇文章主要介绍了Gitlab-runner+Docker自动部署SpringBoot项目,我们的主要流程就是通过Gitlab管理代码,然后利用Gitlab自带的Gitlab CI/CD功能与GitlabRunner进行注册绑定,需要的朋友可以参考下
    2022-04-04
  • Docker与Jenkins实现RuoYi-Vue前后端分离项目的CICD全流程自动化

    Docker与Jenkins实现RuoYi-Vue前后端分离项目的CICD全流程自动化

    在现代软件开发流程中,持续集成/持续部署(CICD)已经成为提升开发效率、保障代码质量的关键实践,本文将详细介绍如何利用Docker容器化技术结合Jenkins,搭建一套完整的CICD流程,实现RuoYi-Vue前后端分离项目的自动化构建、测试和部署,从代码提交到自动部署的全流程自动化
    2026-01-01
  • 浅析Docker镜像分层的注意事项

    浅析Docker镜像分层的注意事项

    不知道大家在对程序进行Docker镜像打包会不会有些疑惑,比如镜像分层打包最后汇总成程序的镜像问题,所以这篇针对一些问题进行了分析,文章主要介绍了Docker镜像分层的一些注意事项,有需要的朋友们可以参考学习,下面来一起看看吧。
    2016-10-10
  • 使用Docker开发python Web 应用

    使用Docker开发python Web 应用

    本文给大家详细讲解了如何使用Docker开发python应用,特别是WEB应用的步骤,Docker本质上提供了非常轻量化的VMs,我们可以使用其创建一个高标准隔离并能大大减少失配的开发和产品环境。
    2016-10-10
  • docker关闭mysql端口映射的使用方式

    docker关闭mysql端口映射的使用方式

    这篇文章主要介绍了docker关闭mysql端口映射的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • 使用非root用户安装及启动docker的问题(rootless模式运行)

    使用非root用户安装及启动docker的问题(rootless模式运行)

    docker是使用--userns-remap容器用户映射宿主机用户的方式来解决问题,用户和组的映射由两个配置文件来控制,分别是/etc/subuid和/etc/subgid,本文给大家介绍非root用户启动docker的问题,感兴趣的朋友一起看看吧
    2022-05-05
  • Docker Registry以及Docker-Registry-UI部署过程

    Docker Registry以及Docker-Registry-UI部署过程

    这篇文章主要介绍了Docker Registry以及Docker-Registry-UI部署过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03

最新评论