Docker と Spring Boot を使用して、アプリケーションの迅速なデプロイと水平拡張を実現します
クラウド コンピューティングとコンテナ テクノロジーの発展に伴い、ますます多くの企業が導入を始めていますDocker アプリケーションのデプロイと管理を実装します。 Docker は軽量で移植性が高く、迅速なデプロイと拡張が可能であるという特徴があるのに対し、Spring Boot は Java アプリケーションを構築するためのフレームワークであり、開発を簡素化する方法を提供します。この記事では、Docker と Spring Boot を組み合わせてアプリケーションの迅速なデプロイと水平拡張を実現する方法を紹介し、具体的なコード例を示します。
1. Docker の概念と使用法
Docker は、アプリケーションとその依存環境をコンテナーにパッケージ化し、さまざまな環境でのアプリケーションの迅速なデプロイメントと移植を実現し、共有できるコンテナー テクノロジーです。 。
まず、Docker をインストールする必要があります。Docker 公式 Web サイトにアクセスして、対応するインストール パッケージをダウンロードし、手順に従ってインストールします。公式ドキュメント。
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 命令を通じて起動コマンドを指定します。
Dockerfile が配置されているディレクトリで、次のコマンドを実行して Docker イメージをビルドします。 ,
my-app はイメージの名前で、実際の状況に応じて変更できます。
docker build -t my-app .
その中には、
-d パラメータはコンテナをバックグラウンド モードで実行することを示し、-p
パラメータはホストの 8080 ポートをコンテナの 8080 ポートにマッピングすることを示し、my-app
は画像の名前。 2. Spring Boot アプリケーションの迅速なデプロイメント
Spring Boot は、独立した Spring ベースのアプリケーションを迅速に構築するために使用できる迅速な開発フレームワークです。
Spring Boot アプリケーションの作成@RestController public class HelloController { @GetMapping("/hello") public String hello() { return "Hello, Docker!"; } }
このうち、
./mvnw は Maven コマンドを実行するために使用されるパッケージ化スクリプトであり、clean package
はMaven コマンド。プロジェクトのクリーニング、コンパイル、パッケージ化に使用します。
という名前のファイルを作成し、次の内容をそこにコピーします。<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:java;toolbar:false;'>./mvnw clean package</pre><div class="contentsignin">ログイン後にコピー</div></div>
FROM openjdk:11 VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
その中に、
my-app はイメージの名前で、実際の状況に応じて変更できます。
docker build -t my-app .
その中には、
-d パラメータはコンテナをバックグラウンド モードで実行することを示し、-p
パラメータはホストの 8080 ポートをコンテナの 8080 ポートにマッピングすることを示し、my-app
は画像の名前。
にアクセスすると、返されたコンテンツが Hello, Docker!
であることがわかり、Spring Boot アプリケーションが正常に展開されました。 3. アプリケーションの水平方向の拡張
Docker のもう 1 つの利点は、アプリケーションを簡単に水平方向に拡張して、高い同時実行性の要件を満たすことができることです。
Docker Compose の使用まず、
docker-compose.yml という名前のファイルを作成し、次の内容をそのファイルにコピーする必要があります: <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:java;toolbar:false;'>docker run -d -p 8080:8080 my-app</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>
上記の構成ファイルは 2 つのサービスを定義します
と app2
は、それぞれ 2 つのアプリケーション インスタンスに対応します。 SPRING_PROFILES_ACTIVE
環境変数を設定することで、アプリケーションの構成環境を指定できます。
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:8081/hello
にアクセスすると、返されたコンテンツが # のままであることがわかります。 ##Hello, Docker!、2 つのアプリケーション インスタンスが正常に開始されたことを示します。
Docker と Spring Boot を使用することで、アプリケーションの迅速なデプロイと水平拡張を実現できます。 Docker のコンテナ化テクノロジを通じて、アプリケーションとその依存環境をコンテナにパッケージ化し、クロスプラットフォームの展開と移植を実現できます。 Spring Boot を使用すると、アプリケーションのスケルトンをすばやく構築し、開発を簡素化できます。この記事が Docker と Spring Boot の理解と使用に役立つことを願っています。
以上がDocker と Spring Boot を使用して、アプリケーションの迅速なデプロイと水平拡張を実現します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。