ホームページ  >  記事  >  Java  >  Docker と Spring Boot を使用して、アプリケーションの迅速なデプロイと水平拡張を実現します。

Docker と Spring Boot を使用して、アプリケーションの迅速なデプロイと水平拡張を実現します。

王林
王林オリジナル
2023-10-20 15:16:42656ブラウズ

使用Docker和Spring Boot实现应用的快速部署和水平扩展

Docker と Spring Boot を使用して、アプリケーションの迅速なデプロイと水平拡張を実現します

クラウド コンピューティングとコンテナ テクノロジーの発展に伴い、ますます多くの企業が導入を始めていますDocker アプリケーションのデプロイと管理を実装します。 Docker は軽量で移植性が高く、迅速なデプロイと拡張が可能であるという特徴があるのに対し、Spring Boot は Java アプリケーションを構築するためのフレームワークであり、開発を簡素化する方法を提供します。この記事では、Docker と Spring Boot を組み合わせてアプリケーションの迅速なデプロイと水平拡張を実現する方法を紹介し、具体的なコード例を示します。

1. Docker の概念と使用法

Docker は、アプリケーションとその依存環境をコンテナーにパッケージ化し、さまざまな環境でのアプリケーションの迅速なデプロイメントと移植を実現し、共有できるコンテナー テクノロジーです。 。

  1. Docker のインストール

まず、Docker をインストールする必要があります。Docker 公式 Web サイトにアクセスして、対応するインストール パッケージをダウンロードし、手順に従ってインストールします。公式ドキュメント。

  1. Docker イメージの作成

Docker イメージは、Docker コンテナーとアプリケーションのパッケージ化形式の基礎です。 Dockerfile を使用してイメージ構築プロセスを定義できます。以下は、単純な Dockerfile の例です。

FROM openjdk:11
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

この例では、公式に提供されている OpenJDK 11 をベース イメージとして使用し、アプリケーションの jar パッケージをコンテナーにコピーし、ENTRYPOINT 命令を通じて起動コマンドを指定します。

  1. Docker イメージのビルド

Dockerfile が配置されているディレクトリで、次のコマンドを実行して Docker イメージをビルドします。 ,

my-app

はイメージの名前で、実際の状況に応じて変更できます。

Docker コンテナを実行する
  1. イメージを構築した後、次のコマンドを使用して Docker コンテナを実行できます:
docker build -t my-app .

その中には、

-d

パラメータはコンテナをバックグラウンド モードで実行することを示し、-p パラメータはホストの 8080 ポートをコンテナの 8080 ポートにマッピングすることを示し、my-app は画像の名前。 2. Spring Boot アプリケーションの迅速なデプロイメント

Spring Boot は、独立した Spring ベースのアプリケーションを迅速に構築するために使用できる迅速な開発フレームワークです。

Spring Boot アプリケーションの作成
  1. まず、Spring Boot アプリケーションを作成する必要があります。 Spring Initializr (https://start.spring.io/) を使用して、基本的な Spring Boot プロジェクトを生成できます。

アプリケーション ロジックの作成
  1. 生成されたプロジェクトでは、独自のビジネス ロジックを作成できます。ここでは、例として単純な RESTful インターフェイスを示します。コードは次のとおりです:
<pre class='brush:java;toolbar:false;'>docker run -d -p 8080:8080 my-app</pre>

実行可能 jar パッケージにパッケージ
  1. プロジェクトのルート ディレクトリで、次のコマンドを実行します。次のコマンドを実行可能な jar パッケージにパッケージ化します:
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Docker!";
    }

}

このうち、

./mvnw

は Maven コマンドを実行するために使用されるパッケージ化スクリプトであり、clean package はMaven コマンド。プロジェクトのクリーニング、コンパイル、パッケージ化に使用します。

Docker イメージのビルド
  1. プロジェクトのルート ディレクトリに
Dockerfile

という名前のファイルを作成し、次の内容をそこにコピーします。<pre class='brush:java;toolbar:false;'>./mvnw clean package</pre>

Docker イメージのビルド
  1. プロジェクトのルート ディレクトリで、次のコマンドを実行して Docker イメージをビルドします。
FROM openjdk:11
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

その中に、

my-app

はイメージの名前で、実際の状況に応じて変更できます。

Docker コンテナを実行する
  1. イメージを構築した後、次のコマンドを使用して Docker コンテナを実行できます:
docker build -t my-app .

その中には、

-d

パラメータはコンテナをバックグラウンド モードで実行することを示し、-p パラメータはホストの 8080 ポートをコンテナの 8080 ポートにマッピングすることを示し、my-app は画像の名前。

http://localhost:8080/hello

にアクセスすると、返されたコンテンツが Hello, Docker! であることがわかり、Spring Boot アプリケーションが正常に展開されました。 3. アプリケーションの水平方向の拡張

Docker のもう 1 つの利点は、アプリケーションを簡単に水平方向に拡張して、高い同時実行性の要件を満たすことができることです。

Docker Compose の使用
  1. Docker Compose は、複数の Docker コンテナーを定義して実行するためのツールです。 Docker Compose を使用して、アプリケーションの複数のインスタンスを管理できます。

まず、

docker-compose.yml

という名前のファイルを作成し、次の内容をそのファイルにコピーする必要があります: <pre class='brush:java;toolbar:false;'>docker run -d -p 8080:8080 my-app</pre>上記の構成ファイルは 2 つのサービスを定義します

app

app2 は、それぞれ 2 つのアプリケーション インスタンスに対応します。 SPRING_PROFILES_ACTIVE 環境変数を設定することで、アプリケーションの構成環境を指定できます。

アプリケーション インスタンスの起動
  1. 構成ファイルが配置されているディレクトリで、次のコマンドを実行してアプリケーション インスタンスを起動します:
version: '3'
services:
  app:
    image: my-app
    ports:
      - "8080:8080"
    environment:
      - SPRING_PROFILES_ACTIVE=dev1

  app2:
    image: my-app
    ports:
      - "8081:8080"
    environment:
      - SPRING_PROFILES_ACTIVE=dev2

Among

- d

パラメーターは、コンテナーをバックグラウンド モードで実行することを示します。

http://localhost:8080/hello

および http://localhost:8081/hello にアクセスすると、返されたコンテンツが # のままであることがわかります。 ##Hello, Docker!、2 つのアプリケーション インスタンスが正常に開始されたことを示します。

Docker と Spring Boot を使用することで、アプリケーションの迅速なデプロイと水平拡張を実現できます。 Docker のコンテナ化テクノロジを通じて、アプリケーションとその依存環境をコンテナにパッケージ化し、クロスプラットフォームの展開と移植を実現できます。 Spring Boot を使用すると、アプリケーションのスケルトンをすばやく構築し、開発を簡素化できます。この記事が Docker と Spring Boot の理解と使用に役立つことを願っています。

以上がDocker と Spring Boot を使用して、アプリケーションの迅速なデプロイと水平拡張を実現します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。