Spring Cloud Alibaba与Docker镜像上传至DockerHub完整指南

环境准备

确保已安装以下工具:

  • JDK 8+
  • Maven 3.x
  • Docker
  • Docker Hub账号
创建Spring Cloud Alibaba项目

通过Spring Initializr生成项目,勾选以下依赖:

  • Spring Web
  • Nacos Discovery(服务注册与发现)
  • OpenFeign(远程调用)

示例pom.xml关键依赖:

<dependency>  
    <groupId>com.alibaba.cloud</groupId>  
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>  
    <version>2022.0.0.0</version>  
</dependency>  
<dependency>  
    <groupId>org.springframework.cloud</groupId>  
    <artifactId>spring-cloud-starter-openfeign</artifactId>  
</dependency>  
配置Nacos注册中心

application.yml中添加Nacos配置:

spring:  
  cloud:  
    nacos:  
      discovery:  
        server-addr: 127.0.0.1:8848  # Nacos服务器地址  
  application:  
    name: your-service-name  # 服务名称  
编写测试接口

创建Controller类示例:

@RestController  
@EnableFeignClients  
public class DemoController {  
    @GetMapping("/hello")  
    public String hello() {  
        return "Hello from Spring Cloud Alibaba";  
    }  
}  
构建Docker镜像

在项目根目录创建Dockerfile

FROM openjdk:17-jdk-slim  
COPY target/your-app.jar /app.jar  
ENTRYPOINT ["java", "-jar", "/app.jar"]  

使用Maven打包并构建镜像:

mvn clean package  
docker build -t your-dockerhub-username/your-app-name:latest .  
登录Docker Hub

运行以下命令并输入账号密码:

docker login  
推送镜像至Docker Hub
docker push your-dockerhub-username/your-app-name:latest  
验证推送结果

登录Docker Hub官网,在个人仓库中检查镜像是否成功上传。

从Docker Hub拉取并运行

在其他机器上测试拉取镜像:

docker pull your-dockerhub-username/your-app-name:latest  
docker run -p 8080:8080 -d your-dockerhub-username/your-app-name  
从使用IDEA插件打包

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

常见问题解决
  • 镜像体积过大:使用多阶段构建或Alpine基础镜像优化。
  • Nacos连接失败:检查Nacos服务是否启动,防火墙是否开放8848端口。
  • Docker推送权限错误:确保已执行docker login且账号有仓库写入权限。

通过以上步骤,可实现从零开始整合Spring Cloud Alibaba服务并发布至Docker Hub全流程。

更多推荐