使用docker在tomcat部署项目注意事项:
1.最典型忘记映射端口或是映射端口在宿主机已被占用,这是初学者最容易犯的错误。docker是线程隔离的,所以必须要映射端口。
2.由于我们在过去很长的一段时间内开发的过程中使用的环境是本地的,而部署上docker的时候,容易忘记修改数据库的url路径,可能还是使用的localhost。有这么种情况往往出现在开始的时候练习docker,而本机装了mysql,部署dokcer,然后用tomcat跑,报错mysql问题。应该使用ipconfig指令,先查看宿主机使用的ipv4地址,填入url中。
3.其次账户远程访问权限问题,例如外部mysql默认root用户是不能用远程ip连接的,正常来说是不应该使用root用户的,但是有有些公司不规范或者是个人练习的时候习惯用root,然后造成启动不起来。同样的redis也要在配置文件中配置开启远程才可使用。所以一般应用使用分配了对应权限或者角色的账户,而如果仅仅是容器启动tomcat使用root机子访问宿主机的数据库root用户是不可行的,当然在docker容器启动的mysql是默认0.0.0.0可以远程连接mysql的,不过使用自定义启动就不一定,这个需要清楚
4.宿主机上的防火墙对应端口没开启入放行,如果云服务器的话,还有相应的安全组需要配置规则。造成即使容器已经映射了宿主,但是外部还是无法正常访问应用,这时候应该使用本地命令行发送http请求访问测试排查。
5.是容器间通信,而容器间每次启动会变,为了让其不变应使用将两个容器放在同一网桥之上,启动时可以指定网桥启动,如果网桥会导致mysql和tomcat容器无法互相访问,导致tomcat启动失败。还有一个就是跨主机部署了,可能两个容器部署在不同的机子上,这时候就需要配置配置路由表。通过测试彼此能不能ping通排查