天天看點

雲原生時代必須具備的核心技能之Docker進階篇(Docker實戰之SpringBoot項目部署)SpringBoot項目部署

雲原生時代必須具備的核心技能之Docker進階篇(Docker實戰之SpringBoot項目部署)SpringBoot項目部署

  上篇文章介紹了如何搭建MySQL的高可以叢集,那麼本文就繼續在這個基礎上我們實作一個具體的SpringBoot項目部署。話不多說,直接開幹!!!

SpringBoot項目部署

  咱們一個實際的項目部署情況應該是這樣的。

雲原生時代必須具備的核心技能之Docker進階篇(Docker實戰之SpringBoot項目部署)SpringBoot項目部署

  接下來我們就在MySQL叢集環境的基礎上來完成一個SpringBoot項目的叢集部署操作。網絡位址配置設定為:

雲原生時代必須具備的核心技能之Docker進階篇(Docker實戰之SpringBoot項目部署)SpringBoot項目部署

1> 建立對應的網絡

docker network create --subnet=172.24.0.0/24 sbm-net      

2>建立SpringBoot項目

通過SpringBoot項目整合MyBatis實作CRUD操作,

屬性檔案中配置的jdbc資訊為

# jdbc的相關配置資訊
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.56.10:3306/haproxy-test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=123456
# 連接配接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# mybatis給package設定别名
mybatis.type-aliases-package=com.bobo.pojo
#指定映射檔案的位置
mybatis.mapper-locations=classpath:mapper/*.xml      

3>對應的項目打成jar包,并上傳到centos7中目錄放在 /tmp/springboot/ 下 然後建立Dockerfile檔案

yum install -y lrzsz      
FROM openjdk:8
MAINTAINER bobo
LABEL name="springboot-mybatis" version="1.0" author="bobo"
COPY springboot-mybatis-demo-0.0.1-SNAPSHOT.jar springboot-mybatis.jar
CMD ["java","-jar","springboot-mybatis.jar"]      

4>基于Dockerfile建構鏡像

docker build -t sbm-image .      

5>基于image建立container

docker run -d --name sb01 -p 8081:8080 --net=sbm-net --ip 172.24.0.11 sbm-image      

6>檢視啟動日志docker logs sb01

7>浏覽器通路測試

http://192.168.56.10:8081/user/query

8>建立多個容器

docker run -d --name sb01 -p 8081:8080 --net=pro-net --ip 172.24.0.11 sbm-image
docker run -d --name sb02 -p 8082:8080 --net=pro-net --ip 172.24.0.12 sbm-image
docker run -d --name sb03 -p 8083:8080 --net=pro-net --ip 172.24.0.13 sbm-image      

9>Nginx安裝

我們通過Nginx來實作負載均衡服務

在centos的/tmp/nginx下建立nginx.conf檔案,并進行相應的配置

user nginx;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65; 
   
    server {
        listen 80;
        location / {
         proxy_pass http://balance;
        }
    }
    
    upstream balance{  
        server 172.24.0.11:8080;
        server 172.24.0.12:8080;
        server 172.24.0.13:8080;
    }
    include /etc/nginx/conf.d/*.conf;
}      

建立容器

docker run -d --name my-nginx -p 80:80 -v /tmp/nginx/nginx.conf:/etc/nginx/nginx.conf --network=pxc-net --ip 172.24.0.10 nginx      

搞定~是不是很容易呀!快動手操作下吧

雲原生時代必須具備的核心技能之Docker進階篇(Docker實戰之SpringBoot項目部署)SpringBoot項目部署