Spring Boot 与 Docker 的结合是现代Java开发中常见的实践,能够简化部署流程并提升应用的可移植性。以下是关键步骤与建议:


🔧 快速入门步骤

  1. 创建Spring Boot项目
    使用Spring Initializr(https://start.spring.io)生成基础结构,确保包含spring-boot-starter-web等必要依赖。

  2. 编写Dockerfile
    在项目根目录添加以下内容:

    FROM openjdk:17
    COPY . /app
    WORKDIR /app
    RUN ./mvnw install
    EXPOSE 8080
    CMD ["java", "-jar", "target/your-app.jar"]
    
  3. 构建并运行镜像
    执行命令:

    docker build -t springboot-docker-app .
    docker run -d -p 8080:8080 springboot-docker-app
    

📚 最佳实践

  • 使用Docker Compose
    通过docker-compose.yml管理多容器依赖,例如:

    version: '3'
    services:
      app:
        build: .
        ports:
          - "8080:8080"
        depends_on:
          - db
      db:
        image: postgres:14
        environment:
          POSTGRES_USER: user
          POSTGRES_PASSWORD: password
    
  • 🛠️ 多阶段构建优化
    减少镜像体积:

    FROM maven:3.8.6 as builder
    COPY . /app
    RUN mvn package
    
    FROM openjdk:17
    COPY --from=builder /app/target/your-app.jar /app.jar
    EXPOSE 8080
    CMD ["java", "-jar", "/app.jar"]
    
  • 🌐 环境变量配置
    docker run中动态设置参数:

    docker run -e SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/mydb ...
    

⚠️ 注意事项

  • Docker版本需与Spring Boot兼容(建议使用17及以上版本)
  • 定期更新基础镜像以避免安全风险
  • 使用--network none--network host时需谨慎配置网络策略

📁 扩展阅读

如需深入学习Docker操作,可访问 docker_tutorial 查看完整指南。

spring_boot_docker
docker_compose