翼度科技»论坛 云主机 服务器技术 查看内容

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

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
问题出现

在服务器上使用docker安装tomcat时遇到了无法访问tomcat的问题。
是因为使用docker pull tomact 下载的tomcat镜像中包含有两个webapps 文件夹。
一个文件夹名为webapps,但是这个文件夹是空的,另外一个文件夹名为webapps.dist,里面有tomcat完整的文件夹和文件。
图示:


问题重现

1、使用docker下载tomcat镜像
  1. docker pull tomcat:9
复制代码
图示:

2、创建tomcat容器
  1. docker run -d -p 8080:8080 tomcat:9
复制代码
图示:

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

4、立刻查看防火墙端口和ECS安全组的情况。
查看防火墙状态
  1. systemctl status firewalld
复制代码
开启防火墙
  1. systemctl start firewalld
复制代码
查看端口信息
  1. firewall-cmd --list-ports  # 只看端口信息
复制代码
开启端口和重启防火墙

  • 开端口命令:
  1. firewall-cmd --zone=public --add-port=8080/tcp --permanent
复制代码

  • 重启防火墙:
  1. systemctl restart firewalld.service
复制代码
查看安全组情况

注意:防火墙8080 端口开了并且阿里云安全组也开放了才能访问远程。
5、以上步骤都没问题,进入容器内部,发现两个webapps。
  1. docker exec -it 53724a20a48c /bin/bash
复制代码
其中webapps文件夹为空,而webapps.dist包含完整的tomcat文件。

6、将目录下webapps.dist里文件复制到webapps。
然后将webapps.dist删除.
  1. cp -r webapps.dist/* ./webapps
  2. rm -rf webapps.dist
复制代码
7、结果


注意

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

解决方案

对于以上出现的问题,可以通过commit操作创建自己的镜像就可以完美的避开此类情况的出现。
docker commit 从容器创建一个新的镜像。
语法:
  1. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
复制代码
OPTIONS说明:

  • -a 提交的镜像作者
  • -c 使用Dockerfile指令来创建镜像
  • -m 提交时的说明文字
  • -p 在commit时,将容器暂停
操作步骤
1、创建镜像
  1. docker commit -a="guardwhy" -m="kobe is mvp" 53724a20a48c tomcat9:9.1
复制代码
图示:

2、创建tomcat容器
  1. docker run -d -p 8081:8080 6b8b40011890
复制代码
3、进入到容器内部查看。
  1. docker exec -it 459677594ee1  /bin/bash
复制代码
图示:

4、结果


总结

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

来源:https://www.jb51.net/server/291814dhx.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具