Docker部署SSM项目及避坑指南

#又踩坑了,这里记录一下,以免日后忘记

前言:本来以为用docker部署个项目很轻松,嗯结果,又踩坑了,这里记录一个完整版。话不多说,开整。

第一步:

用docker拉取MySQL和Tomcat,这一步没什么好说的,太基础了(注意版本号)。

第二部:运行两个容器,这里以tomcat为例:

复制代码
docker run -itd --name tomcat_1 --privileged -p 8081:8080 tomcat:9.0.83

注:运行MySQL的话,如果用导航工具,需要在MySQL上授权,否则会报连接错误,可以参考我之前的文章。

第三部:将准备好的SSM项目打成war包,然后复制到docker中tomcat容器下的/usr/local/tomcat/webapps目录下,tomcat会自动解压缩包,出现文件夹,效果如下:

第四部:这里建议直接安装以下命令,我们后续可能都会用上(根据自己的实际情况去定)

安装vim命令

apt-get install vim

安装ifconfig命令

apt-get install net-tools

安装ping命令

apt-get install iputils-ping

这里解释一下,为什么要安装这些:安装vim是因为你可能随时要改配置文件,安装ifconfig和ping是为了测试容器的连通性。

第五部:

我们修改tomcat的server.xml文件,位于conf文件夹下:

修改完后按:wq保存退出。

第六步,注意避坑来了,一定要把本地项目的连接数据库的ip地址改成容器地址,否则的话即便是你在本地主机能够正常访问MySQL,项目也一样连不上。这个地方我忘了,调试了好久,最后终于想到了这个问题。原理嘛,我就不多说了,可以好好看看docker的内部结构。

这里最好一定去验证容器见是可以通信的,以免发生意外:

最后一步,可以访问tomcat地址了:

如果不改数据库docker的地址,否则永远都无法与数据建立连接,即便是你本地测试已经好使了。

记录到此为止。

相关推荐
victory04318 分钟前
K8S NFS 静态配置和动态配置 StorageClass
云原生·容器·kubernetes
运维 小白9 分钟前
k8s 部署NFS和动态供应器
云原生·容器·kubernetes
luyun02020213 分钟前
Windows 11操作更丝滑,绝了
java·运维·figma
wanhengidc1 小时前
全面了解云手机的安全性
运维·服务器·游戏·智能手机·云计算
hweiyu002 小时前
Docker(K8S)容器架构教程(视频教程)
docker·架构·kubernetes
menge23332 小时前
Linux DNS域名解析服务器练习
linux·运维·服务器
努力成为一个程序猿.2 小时前
Clickhouse数据副本和分片
运维·clickhouse·debian
emiya_saber3 小时前
Linux 进程调度管理
linux·运维·服务器
yangzhi_emo3 小时前
配置dns主从服务
linux·运维·服务器
SongYuLong的博客5 小时前
Linux开源代码汇总
linux·运维·服务器