springBoot-第三个java应用+Docker

-------------------------------------实现多容器部署SpringBoot JavaWeb项目-------------------------------------------

项目源码地址:https://github.com/jinqiwen/springBoot-threeProject

1.这里我们要连接mysql,而且mysql的容器和SpringBoot Javaweb项目的容器分离开

注意在application.xml中编写mysql配置时,指定容器的名字为mysql,从而保证容器间的通信

为什么不用mysql 的ip?因为ip是常常发生变化的,使用名字不会,降低了容器间通信的难度和复杂性


2.在本地测试无误的情况下即可打成war包,注意要跳过测试

项目右击--》open in terminal---》输入mvn package -Dmaven.test.skip=true

3.在文件夹中放入Dockerfile 和刚打包好的springBoot项目,dockerfile内容如下:(这里我们将springboot放入tomcat中运行)

FROM hub.c.163.com/library/tomcat:8.5
MAINTAINER jinqiwen
COPY demo1-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps

注意jdk1.8 对应  tomcat8.5,否则会报错

4.将本地mysql对应的库导出,用于之后mysql容器中的库,这里我们的存放路径为:


进入docker虚拟机中:

     在网易云的镜像中心下载mysql镜像,命令如下:(建议本地mysql的版本和镜像mysql的版本一致,免得出现版本问题)

         docker pull hub.c.163.com/library/mysql:5.5.52

      运行镜像:

         docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=leecx      hub.c.163.com/liberary/mysql:5.5.52

       存入数据

            docker ps查看mysql的容器id

            docker exec -it   +mysql的容器id+/bin/bash

             mysql -u root -p 

             123456

             source +sql文件的存储路径(如: source /usr/local/shiyan1.sql)

            完成,mysql容器中已经有了对应的数据库和表,建议在启动mysql容器时加入数据卷绑定,保证容器出现问题时,数据库中的数据不会丢失

         

5.docker上操作springBoot项目

首先生成镜像:

 进入Dockerfile所在的目录,输入

             docker build -t demo  .(注意最后有个点)

 启动demo项目,输入

              docker run -d -p 8080:8080  --name webdemo --link mysql  demo(注意一定要加--link,这样才能保证项目连上mysql,从而实现mysql的基础操作)

查看项目是否有启动成功

               docker ps查看springBoot项目的容器id

               docker exec -it  + 容器的id+  /bin/bash

                cd logs

                tail -300 catalina.2018-05-11.log(这里需要修改下时间哦)

            如果没有报错就可以在浏览器上访问项目了,输入地址,如下,其中192.168.99.100是docker虚拟机的ip,后面分别是tomcat中项目的名称和requestMapping







     




猜你喜欢

转载自blog.csdn.net/qq_35394891/article/details/80281256