SpringCloud Alibaba微服务实战十五 - SpringCloud 容器化部署

简介: SpringCloud Alibaba微服务实战十五 - SpringCloud 容器化部署

SpringCloud Alibaba 系列文章已经写了 16 篇了,基本框架大体完成,业务相关的逻辑还需要根据项目本身的业务进行梳理改造。今天将是本系列的最后一篇 - SpringCloud 容器化部署(理论上最后一篇,不排除后面会对相关组件进行升级)

看在写了这么多的份上是不是应该点个在看呢?


开启 Docker 远程访问


由于我是在 windows 上进行开发没有安装 docker,所以需要找一台安装好 docker 的服务器并开启远程访问。使用 mac 的同学请忽略。

  • 打开 docker 配置文件
    vi /lib/systemd/system/docker.service
  • 开放 2376 端口
    找到ExecStart=/usr/bin/dockerd所在行,在后面追加-H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock,修改完成的效果如下:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
  • 重启 docker 服务
systemctl daemon-reload
systemctl restart docker.service

docker-maven-plugin 构建 docker 镜像

在开始打包之前一定要先在bomcommon模块执行mvn clean install命令,否则打包不成功。

看过本系列文章的人一定也知道 docker 和 docker-compose 的相关指令了,这里就不再说明。

  • 在需要构建组件的模块引入 docker-maven-plugin 插件
<plugin>
  <groupId>com.spotify</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <version>1.2.2</version>
  <configuration>
    <imageName>${project.artifactId}</imageName>
    <imageTags>
      <imageTag>latest</imageTag>
    </imageTags>
    <!--指定Dockerfile路径-->
    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
    <dockerHost>http://xxx.xx.xx.xx:2376</dockerHost>
    <resources>
      <resource>
        <targetPath>/</targetPath>
        <!--${project.basedir}/target-->
        <directory>${project.build.directory}</directory>
        <!--${project.artifactId}-${project.version}-->
        <include>${project.build.finalName}.jar</include>
      </resource>
    </resources>
  </configuration>
</plugin>

这里端口与前面开放的端口保持一致。

  • 在模块的 src/main/docker 目录下建立 Dockerfile 文件
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD cloud-gateway-1.0.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

每个模块需要自行修改 ADD 指令

  • 在模块下执行如下命令构建 docker 镜像
mvn clean package docker:build -DskipTests

执行效果如下:

  • 构建完成后登陆服务器查看 docker 镜像docker images
  • 启动镜像,带上--rm 指令便于删除容器。
docker run -d -p 5000:5000  --rm auth-service
docker run -d -p 8010:8010  --rm account-service
docker run -d -p 8090:8090  --rm cloud-gateway
  • 查看是否正常启动
  • 使用 postman 进行测试

服务正常响应!


使用 docker-compose 启动


  • 创建 cloud-service.yml 文件编排镜像
version:"3"
services:
  auth-service:
    container_name:auth-service
    image:auth-service:latest
    ports:
      -"5000:5000"
    restart:always
  cloud-gateway:
    container_name:cloud-gateway
    image:cloud-gateway:latest
    ports:
      -"8090:8090"
    restart:always
  account-service:
    container_name:account-service
    image:account-service:latest
    ports:
      -"8010:8010"
    restart:always
  • 将文件上传至服务器,使用如下脚本启动服务
    docker-compose -f cloud-service up
  • 使用 postman 进行测试服务正常响应!

SpringCloud 的容器化部署还是比较简单的,你还不来试一下?


好了,各位朋友们,本期的内容到此就全部结束啦,能看到这里的同学都是优秀的同学,下一个升职加薪的就是你了!

目录
相关文章
|
9月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1258 108
|
9月前
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
9月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1371 3
|
7月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
11月前
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
565 102
|
11月前
|
运维 监控 数据可视化
容器化部署革命:Docker实战指南
容器化部署革命:Docker实战指南
|
7月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1272 2
Spring Boot 3.x 微服务架构实战指南
|
11月前
|
存储 运维 安全
Docker化运维:容器部署的实践指南
Docker化运维:容器部署的实践指南
|
7月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
1046 4

推荐镜像

更多