快速用docker部署JavaWeb项目

MySQL部署

下载

下载MySQL镜像,注意这里的名字字母都是全小写的

docker pull mysql

创建容器并设置初始密码

docker run -p 3306:3306 --name mysql -v /usr/JavaWeb/mysql/conf:/etc/mysql/conf.d -v /usr/JavaWeb/mysql/logs:/logs -v /usr/JavaWeb/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=你的密码 -d mysql

参数说明
-p 3306:3306:规定容器的3306端口对应了宿主机的3306端口
-v xxxxx:分别设置外部的数据卷,这样的话你数据库里的信息就不会随着容器的销毁而消失了
-e MYSQL ROOT_PASSWORD=XXX:设置你的密码
-d:默认后台运行

进入数据库控制台(如果你需要)

docker exec -it (MySQL运行成功后的Id或者名字) /bin/bash

进入容器后,你到的是这个容器的Linux里的落脚点而不是数据库终端,所以还需要打开mysql的终端

mysql -uroot -p

输入账号密码,登入

远程Navicat连接

注意你之前-p 3306:3306,第一个3306就代表了你用navicat需要连接的端口,又比如你之前如果因为端口占用写的是-p 3305:3306,那么这时候你需要连的就是3305端口了,然后照常输入账户密码,登入,成功。至此mysql的问题就解决完了

Tomcat部署

下载

docker pull tomcat

不解释

启动

docker run -d -p 8888:8080 --name tomcat tomcat

这里我们让容器的8080端口对应宿主机的8888端口
然后给这个容器命名为tomcat(以后方便操作)
启动就先这样
这时候,访问你的网页,就可以看到tomcat启动成功的页面了
但是有些时候可能你会等一段时间才能看到,别慌,ok的

导入war包

之前我想的是采用数据卷的方式,把容器里的webapps直接弄出来了,但是这样导致的问题就是tomcat在初始化的时候无法在webapps里创建各种基本的文件(可能是权限问题),访问首页的时候就出现了404。(而且我丢进去的项目也跑不起),所以我最终还是选择了采用docker cp的方式把war包复制到容器里去
这样的

docker cp 你的war tomcat:/usr/local/tomcat/webapps

一个小坑

(最好别用–link指令,以后我会写一篇关于docker compose的)
在这里,我们的mysql就是用docker部署的,所以我们之前在Java项目里写的数据库的地址也就应该从
jdbcUrl=jdbc:mysql://localhost:3306/lehrsWeb?useSSL=false
改为
jdbcUrl=jdbc:mysql://你数据库的container ip:3306/lehrsWeb?useSSL=false
这里的container ip怎么查呢?

docker inspect (你mysql容器的名字或者容器id)

你会看到这样结果
在这里插入图片描述
划红线的地方就是了
这样基本就能跑了

设置首页

如果为了更方便,每次不用写项目的目录就能直接访问到项目,可用去tomcat容器里的server.xml里增加这样一句(位置如图所示,在host那个标签下面)
<Context path="" doBase="LehrsBlog.war" debug="0" privileged="true">
在这里插入图片描述
同时你的JavaWeb项目里的web.xml也要设置一个首页:
在这里插入图片描述
像这样,然后就就大功告成了

(我也觉得我这篇文章写的很水,但是确实就这几个步骤…)

发布了33 篇原创文章 · 获赞 40 · 访问量 3547

猜你喜欢

转载自blog.csdn.net/qq_43948583/article/details/104399172