云原生时代必须具备的核心技能之Docker高级篇(Docker实战之SpringBoot项目部署)

Posted 波波烤鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生时代必须具备的核心技能之Docker高级篇(Docker实战之SpringBoot项目部署)相关的知识,希望对你有一定的参考价值。

  上篇文章介绍了如何搭建mysql的高可以集群,那么本文就继续在这个基础上我们实现一个具体的SpringBoot项目部署。话不多说,直接开干!!!

SpringBoot项目部署

  咱们一个实际的项目部署情况应该是这样的。


  接下来我们就在MySQL集群环境的基础上来完成一个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项目部署)的主要内容,如果未能解决你的问题,请参考以下文章

云原生时代必须具备的核心技能之Docker高级篇(Harbor-镜像私服)

云原生时代必须具备的核心技能之Docker高级篇(Docker实战之MySQL高可用集群搭建)

云原生时代必须具备的核心技能之Docker高级篇(DockerCompose-容器编排)

云原生时代必须具备的核心技能之Docker高级篇(Docker实战之SpringBoot项目部署)

云原生时代,被重塑的运维人必须具备哪些技能?

云原生之docker详细知识技能介绍与实战