Docker安装Tomcat无法访问的问题及解决
作者:普通网友
这篇文章主要介绍了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 安装Tomcat、实现Tomcat集群的详细过程
- 解决docker运行tomcat提示找不到文件的问题
- Docker制作tomcat镜像并部署项目
- Docker 制作tomcat镜像并部署项目的步骤
- 基于Docker部署Tomcat集群、 Nginx负载均衡的问题小结
- 使用 docker部署tomcat并接入skywalking的使用
- docker安装tomcat8的实现方法
- Docker方式启动tomcat访问首页出现404错误
- docker安装tomcat并部署Springboot项目war包的方法
- Docker安装Tomcat、MySQL和Redis的步骤详解
- Docker部署Tomcat并开放8082端口的实现步骤