docker部署简单web项目(JSP+Servlet+Mysql8)
docker中部署一个简单的web项目,简单记录一下系统:centos8 架构:jsp+servlet+mysql8首先运行tomcat的容器使用虚拟机IP+端口访问tomcat,可能会出现下面的问题:进入容器查看webapps目录,发现是空的,真正的文件全在webapps.dist中,需要将webapps.dist重命名为webapps可以看到,再次访问成功接着运行mysql容器docker r
docker中部署一个简单的web项目,简单记录一下
系统:centos8
架构:jsp+servlet+mysql8
首先运行tomcat的容器
使用虚拟机IP+端口访问tomcat,可能会出现下面的问题:
进入容器查看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)
使用navicat远程连接数据库,若连接失败可以更改加密方式(注:docker内只能通过内网IP访问数据库,因为虚拟机的端口在更外的一个层级,docker内的容器访问不到)
使用docker cp /test.war tomcat1:/usr/local/tomcat/webapps
将打包好的项目war包移动到容器webapps目录下,自动完成部署,使用 虚拟机IP:端口号/项目名 来进行访问
至此完成项目在docker中的部署
可能会出现连接不了数据库的问题,这是由于防火墙导致的
这里有两种解决方法
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
//关闭防火墙
更多推荐
所有评论(0)