docker部署简单web项目(JSP+Servlet+Mysql8)

docker中部署一个简单的web项目,简单记录一下

系统:centos8
架构:jsp+servlet+mysql8

首先运行tomcat的容器
运行tomcat容器
使用虚拟机IP+端口访问tomcat,可能会出现下面的问题:
404

进入容器查看webapps目录,发现是空的,真正的文件全在webapps.dist中,需要将webapps.dist重命名为webapps
重命名
可以看到,再次访问成功
访问成功

接着运行mysql容器

docker run --name mysql1 -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=123456 mysql

使用docker inspect mysql1查看容器的IP,并将web项目中连接数据库的url修改成该IP(Gateway为docker内网IP,IPAddress为mysql容器IP)
IP
URL
使用navicat远程连接数据库,若连接失败可以更改加密方式(注:docker内只能通过内网IP访问数据库,因为虚拟机的端口在更外的一个层级,docker内的容器访问不到)
navicat

使用docker cp /test.war tomcat1:/usr/local/tomcat/webapps将打包好的项目war包移动到容器webapps目录下,自动完成部署,使用 虚拟机IP:端口号/项目名 来进行访问
部署
至此完成项目在docker中的部署
success

可能会出现连接不了数据库的问题,这是由于防火墙导致的
这里有两种解决方法
1.(推荐)
firewall-cmd --permanent --zone=trusted --change-interface=docker0 //docker设置为trusted域
firewall-cmd --zone=public --add-port=3306/tcp --permanent //开放3306端口
firewall-cmd --reload //重新加载
2.(不推荐)
systemctl stop firewalld.service //关闭防火墙

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值