Docker と Spring Boot を使用してクラウドネイティブ アプリケーションを最初から構築する

王林
リリース: 2023-10-20 14:16:58
オリジナル
532 人が閲覧しました

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

Docker と Spring Boot を使用してクラウド ネイティブ アプリケーションを最初から構築する

要約: クラウド ネイティブ アプリケーションは、コンテナー テクノロジーとこのサービス アーキテクチャにより、迅速な展開と拡張が実現し、アプリケーションの信頼性と保守性が向上します。この記事では、Docker と Spring Boot を使用してクラウド ネイティブ アプリケーションを構築する方法を紹介し、具体的なコード例を示します。

1. 背景の紹介
クラウド ネイティブ アプリケーションとは、柔軟なスケーリング、自動展開、コンテナ化などのクラウドの特性を最大限に活用できる、クラウド環境で設計および構築されるアプリケーションを指します。待って。クラウドネイティブ アプリケーションは、複雑なアプリケーションを複数の小さな独立したサービスに分割するマイクロサービス アーキテクチャを採用しており、各サービスは独立したコンテナ内で実行され、疎結合と高度にスケーラブルな機能を実現します。

Docker は、アプリケーションとその依存関係をポータブル コンテナにパッケージ化し、アプリケーションの迅速な展開、複製、移植性を実現できる軽量のコンテナ化テクノロジです。 Spring Boot は、開発が迅速でデプロイが簡単な Java フレームワークであり、独立した運用グレードの Spring アプリケーションを簡単に構築できます。

2. 準備作業
クラウド ネイティブ アプリケーションの構築を開始する前に、次の準備作業を完了する必要があります:

  1. Docker のインストール: 公式 Web サイトで 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 イメージをビルドします。
  2. ##
    docker build -t myapp .
    ログイン後にコピー
これにより、Spring Boot アプリケーションを含む myapp という名前の Docker イメージがローカルに構築されます。

4. Docker コンテナを使用してアプリケーションをデプロイする

    コマンド ラインで次のコマンドを実行して Docker コンテナを実行し、コンテナの 8080 ポートを 8080 ポートにマッピングします。ホストの:
  1. docker run -p 8080:8080 myapp
    ログイン後にコピー
    ブラウザを開いて http://localhost:8080 にアクセスし、Docker コンテナにデプロイされた Spring Boot アプリケーションを確認します。
5. 複数のマイクロサービスをデプロイする

クラウド ネイティブ アプリケーションは通常、複数のマイクロサービスで構成され、各マイクロサービスは独立したコンテナーで実行されます。以下では、2 つのマイクロサービスをデプロイして通信する方法を示します。

    2 番目の Spring Boot プロジェクトを作成し、ステップ 3 に従って Docker イメージをビルドします。
  1. 最初の Spring Boot プロジェクトのコードに、2 番目のマイクロサービスを呼び出すための API インターフェイスを追加します。サンプル コードは次のとおりです。
  2. @RestController
    public class MyController {
    
        @Autowired
        private RestTemplate restTemplate;
    
        @GetMapping("/")
        public String hello() {
            String url = "http://second-service:8080/";
            return restTemplate.getForObject(url, String.class);
        }
    }
    ログイン後にコピー
    最初の Spring Boot プロジェクトの Dockerfile を変更し、次のコンテンツを追加します。 2 番目の Spring Boot プロジェクトの Dockerfile に、次の内容を追加します。
  1. # 使用基础的Java镜像
    FROM openjdk:8-jdk-alpine
    
    # 设置工作目录
    WORKDIR /app
    
    # 复制应用和依赖到镜像中
    COPY target/myapp.jar app.jar
    
    # 设置容器启动时执行的命令
    ENTRYPOINT ["java", "-jar", "app.jar"]
    ログイン後にコピー
    ログイン後にコピー
    最初の Spring Boot プロジェクトのコードに、RestTemplate を作成するための次の構成を追加します。
  1. # 使用基础的Java镜像
    FROM openjdk:8-jdk-alpine
    
    # 设置工作目录
    WORKDIR /app
    
    # 复制应用和依赖到镜像中
    COPY target/second-app.jar app.jar
    
    # 设置容器启动时执行的命令
    ENTRYPOINT ["java", "-jar", "app.jar"]
    ログイン後にコピー
    6. 概要 この記事では、Docker と Spring Boot を使用してクラウド ネイティブ アプリケーションを最初から構築する方法を紹介します。 Docker を使用してアプリケーションをコンテナー イメージにパッケージ化することで、迅速なデプロイメントとスケーリングが実現され、アプリケーションの信頼性と保守性が向上します。 Spring Boot を使用してマイクロサービス アーキテクチャを構築することで、疎結合と拡張性の高い機能を実現できます。
    1. 上記は単純な例であり、実際のクラウド ネイティブ アプリケーションにはより複雑なコンポーネントや構成が含まれる場合があります。この記事が、Docker と Spring Boot を使用してクラウド ネイティブ アプリケーションを構築する方法を読者が理解するのに役立ち、いくつかの基本的なコード例を提供することを願っています。読者は、自分のニーズに応じて拡張および調整して、より複雑なアプリケーション アーキテクチャと機能を実現できます。

    以上がDocker と Spring Boot を使用してクラウドネイティブ アプリケーションを最初から構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート