>  기사  >  Java  >  Docker 및 Spring Boot를 사용하여 처음부터 클라우드 네이티브 애플리케이션 구축

Docker 및 Spring Boot를 사용하여 처음부터 클라우드 네이티브 애플리케이션 구축

王林
王林원래의
2023-10-20 14:16:58529검색

从零开始,使用Docker和Spring Boot构建云原生应用

Docker 및 Spring Boot를 사용하여 처음부터 클라우드 네이티브 애플리케이션 구축

요약: 클라우드 네이티브 애플리케이션은 현대 소프트웨어 개발의 추세가 되었습니다. 컨테이너 기술과 마이크로서비스 아키텍처를 사용하면 신속한 배포와 확장이 가능하며 애플리케이션을 신뢰성과 유지보수성이 향상됩니다. 이 기사에서는 Docker와 Spring Boot를 사용하여 클라우드 네이티브 애플리케이션을 구축하는 방법을 소개하고 특정 코드 예제를 제공합니다.

1. 배경 소개
클라우드 네이티브 애플리케이션은 탄력적인 확장, 자동화된 배포, 컨테이너화 등 클라우드 기능을 최대한 활용할 수 있는 클라우드 환경에서 설계 및 구축된 애플리케이션을 말합니다. 클라우드 네이티브 애플리케이션은 복잡한 애플리케이션을 여러 개의 작고 독립적인 서비스로 나누는 마이크로서비스 아키텍처를 채택합니다. 각 서비스는 독립적인 컨테이너에서 실행되어 느슨한 결합과 확장성이 뛰어난 기능을 달성합니다.

Docker는 애플리케이션과 해당 종속성을 휴대용 컨테이너에 패키징하여 애플리케이션의 신속한 배포, 복제 가능성 및 이식성을 달성할 수 있는 경량 컨테이너화 기술입니다. Spring Boot는 개발이 빠르고 배포가 간단한 Java 프레임워크로, 독립적인 프로덕션급 Spring 애플리케이션을 쉽게 구축할 수 있습니다.

2. 준비
클라우드 네이티브 애플리케이션 구축을 시작하기 전에 다음 준비를 완료해야 합니다.

  1. Docker 설치: 공식 웹사이트에서 Docker를 다운로드하고 설치하여 Docker 서비스가 정상적으로 실행되는지 확인합니다.
  2. Spring Boot 프로젝트 생성: IDE를 사용하여 새로운 Spring Boot 프로젝트를 생성하고 선택적으로 Maven 또는 Gradle을 사용하여 빌드할 수 있습니다.

3. Docker 이미지 빌드

  1. Spring Boot 프로젝트의 루트 디렉터리에 Dockerfile이라는 파일을 생성하여 Docker 이미지의 빌드 규칙을 정의합니다.
  2. Dockerfile을 편집하고 다음 콘텐츠를 추가합니다.
# 使用基础的Java镜像
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /app

# 复制应用和依赖到镜像中
COPY target/myapp.jar app.jar

# 设置容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "app.jar"]
  1. 명령줄에서 프로젝트 루트 디렉터리를 입력하고 다음 명령을 실행하여 Docker 이미지를 빌드합니다.
docker build -t myapp .

이렇게 하면 myapp이라는 Docker 이미지가 로컬로 빌드됩니다. , 여기서 Spring Boot 애플리케이션이 포함되어 있습니다.

4. Docker 컨테이너를 사용하여 애플리케이션 배포

  1. 명령줄에서 다음 명령을 실행하여 Docker 컨테이너를 실행하고 컨테이너의 8080 포트를 호스트의 8080 포트에 매핑합니다.
docker run -p 8080:8080 myapp
  1. 브라우저를 열고 http를 방문하세요. //localhost:8080, Docker 컨테이너에 배포된 Spring Boot 애플리케이션을 볼 수 있습니다.

5. 여러 마이크로서비스 배포
클라우드 네이티브 애플리케이션은 일반적으로 여러 마이크로서비스로 구성되며 각 마이크로서비스는 독립적인 컨테이너에서 실행됩니다. 아래에서는 두 개의 마이크로서비스를 배포하고 통신하는 방법을 보여줍니다.

  1. 두 번째 Spring Boot 프로젝트를 생성하고 3단계에 따라 Docker 이미지를 빌드합니다.
  2. 첫 번째 Spring Boot 프로젝트의 코드에서 두 번째 마이크로서비스를 호출하는 API 인터페이스를 추가합니다. 샘플 코드는 다음과 같습니다.
@RestController
public class MyController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/")
    public String hello() {
        String url = "http://second-service:8080/";
        return restTemplate.getForObject(url, String.class);
    }
}
  1. 첫 번째 Spring Boot 프로젝트의 Dockerfile을 수정하고 다음 콘텐츠를 추가합니다.
# 使用基础的Java镜像
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /app

# 复制应用和依赖到镜像中
COPY target/myapp.jar app.jar

# 设置容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "app.jar"]
  1. 두 번째 Spring Boot 프로젝트의 Dockerfile을 수정하고 다음 콘텐츠를 추가합니다.
# 使用基础的Java镜像
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /app

# 复制应用和依赖到镜像中
COPY target/second-app.jar app.jar

# 设置容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "app.jar"]
  1. 첫 번째 Spring Boot 프로젝트 코드에서 다음 구성을 추가하여 RestTemplate을 만듭니다.
@Bean
public RestTemplate restTemplate() {
    return new RestTemplate();
}

6. 요약
이 문서에서는 Docker와 Spring Boot를 사용하여 처음부터 클라우드 네이티브 애플리케이션을 구축하는 방법을 소개합니다. Docker를 사용하여 애플리케이션을 컨테이너 이미지로 패키징하면 신속한 배포 및 확장이 가능하고 애플리케이션의 안정성과 유지 관리 가능성이 향상될 수 있습니다. Spring Boot를 사용하여 마이크로서비스 아키텍처를 구축하면 느슨한 결합과 확장성이 뛰어난 기능을 얻을 수 있습니다.

위는 간단한 예이며, 실제 클라우드 네이티브 애플리케이션에는 더 복잡한 구성 요소와 구성이 포함될 수 있습니다. 이 기사가 독자가 Docker 및 Spring Boot를 사용하여 클라우드 네이티브 애플리케이션을 구축하는 방법을 이해하고 몇 가지 기본 코드 예제를 제공하는 데 도움이 되기를 바랍니다. 독자는 보다 복잡한 애플리케이션 아키텍처와 기능을 달성하기 위해 자신의 필요에 따라 확장하고 조정할 수 있습니다.

위 내용은 Docker 및 Spring Boot를 사용하여 처음부터 클라우드 네이티브 애플리케이션 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.