业界动态
docker在java web_在docker中部署java web项目
2024-12-26 18:16

在学习了 docker 的基本知识之后,自然就应该练练手了,这次来写写如何在docker容器中部署一个java web 应用的详细步骤

(说明:主机 windows 系统,在 vmware workstations 中运行 CentOS 7 的虚拟机,虚拟机的ip 为 192.168.190.130)

安装 Docker

既然是 docker 的实战,第一步自然是检查 docker 是不是安装了,是不是正常运行的,这里我用的是CentOS 7 的 Linux 系统,安装好 docker 之后从镜像市场中拉取所需的 tomcat 镜像和MySQL 镜像,如下图示

由于这两个镜像比较大,所以建议提前拉取。

创建 MySQL Container镜像拉取好了之后就创建运行应用所需的容器,首先创建一个 MySQL 容器

[[email protected] ~]# docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

解释一下上面命令的含义:1

2

3

4run -itd:在 docker 中运行一个带交互式的且能后台运行的容器。

--name mysql:给容器命名为 mysql,注意 name 前面有两个小横杠,你也可以自己随意命名。

-p 3306:3306:这里是指将容器的 3306 端口映射到主机的 3306 端口,冒号前面指的是主机,后面指的是容器。

-e MY_ROOT_PASSWORD=123456:这行命令的意思是在创建 mysql 容器的时候在容器中创建一个 root用户,密码是 123456,要是不想用 123456,把它改成你想要的就可以了。

下面我们进入这个容器看看

docekr exec 命令用来进入容器内部。进入之后可以使用 service mysql start 命令来查看当前 mysql服务的状态,一般情况下都是 runing 的,如果不是,自行启动一下就可以了。

docker在java web_在docker中部署java web项目

然后使用 mysql -u root -p 回车后提示输入密码,我的是 123456 .输入回车之后就会进入 mysql 的命令行了! 可用 show databases ; 查看一下 mysql 中有哪些数据库。

:现在在 mysql 容器的命令行中,可以另外打开一个终端进行下面的操作,也可以使用 ctrl+p+q(按住 ctrl 不放,先按 p 键,再按 q 键。全部松开后回车就可以回到 linux命令行中)来退出 mysql 容器但不让容器停止。

连接并导入数据库至容器现在使用一个工具连接到数据库,并且将数据库上传到 docker 的 mysql 容器中。

( Navicat 是我认为最好用的数据库管理工具。)

这里的 ip 地址就是虚机 ip,指定连接到虚机的 3306 端口,也就是会连接到 mysql 容器,因为主机的3306 端口是和容器的 3306 相连接的,连接名随便取测试连接成功后点击确定就好了。下一步就是把我们 java web 应用的数据库导入到 mysql 容器的数据库中了。这个步骤直接在 Navicat 中就可以完成了

新建一个数据库名为 db_mps 的数据库,字符集和排序规则不选,它会根据 .sql 文件自动识别。

这里运行完 .sql 文件之后刷新表,或者刷新数据库,这取决于 .sql 文件有哪些东西。我的 .sql 文件里只有几张表。这个时候回到 mysql 容器中用 show databases ; 查看容器中的数据库,这时会显示有db_mps 数据库。到这里为止,就创建好了 mysql 容器,并且在容器中部署了一个名为 db_mps 的数据库。

创建 Web Container接下来创建部署web服务的容器1[[email protected] ~]# docker run -itd -p 80:8080 --name myweb tomcat

这里所用的参数在创建 mysql 容器时都有解释。进入到 myweb 容器中可以看到有一个 webapps 的目录,把 java web 应用的工程文件导出为 war 包,然后放到这里的 webapps 目录下。这样 tomcat 会自动解压部署。现在已经创建好了 myweb 容器,我们可以在浏览器输入 192.168.190.130:80 检查一下tomcat是否部署成功。

那看到这个页面说明 myweb 中的 tomcat 服务已经是启动的,如果没有出现 tomcat 部署成功的这个页面,你需要进入 myweb 的 bin 目录找到 catalina.sh 文件并且 run 起来。

导入工程文件tomcat 服务已经部署好了,接下来就是导入 war 包工程文件了。

在导入 war 包之前,查看一下 mysql 容器的 ip,然后去 java web 的工程文件中访问数据库的文件里修改访问的数据库,如下图所示

图上可以看到,这里的 ip 是 172.17.0.2,也就是说如果部署 web 应用,就要在工程文件中指定访问的数据库的 ip 地址为 172.17.0.2,这样 web 应用部署在 tomcat 上才会去读取 mysql 中的数据。我这里的工程文件如下图所示

将工程文件中连接数据库的配置信息改成我们容器的 ip 地址即可。然后导出 war 包工程文件,我的开发软件是 eclipse。直接用复制粘贴把 war 放入的虚机里的 /mnt 目录下。

部署、检验

接下来要将 /mnt 目录下的 war 包文件放到 myweb 容器下的 webapps 目录下,命令如下:1[[email protected] ~]# docker cp /mnt/MPS_system.war fa0be9ddda5c1d667be886ad28e9895e37d17b839677e215a0dfb7e961b6c974:/usr/local/tomcat/webapps

这个命令是把在 /mnt 下的 MPS_system.war 文件拷贝到 myweb 容器下的 webapps 目录下。里面很长的那个字符串是容器的id,这里用 myweb 应该也可以(myweb 是 tomcat 容器的容器名),后面是 webapps 在容器中的路径,是固定的,直接复制即可。

可以看到tomcat容器已经自动帮我们解压并部署了war包工程文件,到此为止,部署工作全部完成!验收一下

部署完成之后就该看看是否成功了,在浏览器中输入虚机的 ip+war 包文件名,如下图

访问成功!试试登录是否正常,如果登录正常说明 myweb 是访问到了 mysql 数据库的,因为登录信息保存在 mysql 的表中。

    以上就是本篇文章【docker在java web_在docker中部署java web项目】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/10324.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
盘点2024西安荣耀时刻!“西”引力爆表!
从传统文化的深厚积淀到旅游行业的蓬勃发展从非遗艺术的薪火相传到现代潮流的创新融合……今天,和文旅君一起回顾2024年古都西安
惠山街道2024年工作总结和2025年工作思路
2024年工作回顾2024年惠山街道始终坚持以习近平新时代中国特色社会主义思想为指导,认真落实区委、区政府决策部署,坚持稳中求进
天气|明日“小寒”!最冷“三九”就要来!
今日天气实况今日迎来2025年的首个双休日天气状况还不错天空晴朗,阳光温暖,风力微弱15时全市各区气温在7℃左右明天迎来小寒节
枝江市2025年“十大民生项目”公布!
枝江市第七届人民代表大会第五次会议于2025年1月10日票决产生了枝江市2025年度重大民生实事项目一起来看看↓↓↓一、枝江市枫杨
原来是这样 | 又上热搜!最近很火的“煮苹果水”,到底怎么喝更有用?
鄠邑区是中国科协命名的“全国科普示范区”,为进一步弘扬科学精神、普及科学知识、传播科学思想,鄠邑区科学技术协会联合鄠邑区
惊掉下巴!他俩在一起了???
新发色迎新年 2025鸿运当头拉满仪式感从头开始换个气场NOUGAT ,欧美名媛凯特王妃最爱的纯有机老牌洗护自然原生植萃护不伤头皮、
第一批鸡娃英语的妈妈,都后悔了……
虽然科大大同事们都说不卷,但又悄咪咪卷(啪啪打脸中…)的家长,2年级用上倾听者不算晚!说真的,有了它,吼孩子都少了!产品
发改委:推进户用光伏发展,助力农民拓宽增收新路径
中国产品流通经纪人协会供销合作行业标准《农产品食品供应商信用评价规范》参编单位征集函中国农产品流通经纪人协会供销合作行业
泉州百度爱采购运营介绍
百度爱采购入驻条件有哪些:商家需持有工商行政管理局颁发的营业执照,并且执照在6个月有效期内;厂家商品真实在营且符合国家相
抖音feed是什么 feed广告投放流程
feed是什么?feed流(又称信息流)它是穿插在App内容中的广告,具有原生沉浸式体验,支持多种展现形式。feed可以进行线索收集,