検索
ホームページJava&#&チュートリアルDocker と Spring Boot を使用して、アプリケーションの迅速なデプロイと水平拡張を実現します。

使用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:php;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:php;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:php;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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール