ホームページ > Java > &#&チュートリアル > Docker と Spring Boot を使用してコンテナ化されたアプリケーションを開発およびデプロイするためのベスト プラクティス

Docker と Spring Boot を使用してコンテナ化されたアプリケーションを開発およびデプロイするためのベスト プラクティス

王林
リリース: 2023-10-27 16:12:27
オリジナル
756 人が閲覧しました

使用Docker和Spring Boot开发和部署容器化应用的最佳实践

Docker と Spring Boot を使用してコンテナ化されたアプリケーションを開発およびデプロイするためのベスト プラクティス

はじめに:
クラウド コンピューティング テクノロジの普及と発展に伴い、コンテナ化アプリケーションの開発とデプロイが行われています。導入の重要性はますます高まっています。一般的なコンテナ化テクノロジとして、Docker はアプリケーションに分離された実行環境を提供し、開発およびデプロイメントのプロセスを大幅に簡素化します。 Java 開発を簡素化するフレームワークとして、Spring Boot は独立した実行可能な Spring アプリケーションを迅速に構築できます。この記事では、Docker と Spring Boot を組み合わせて、コンテナー化されたアプリケーションを開発およびデプロイする方法を紹介します。

1. Docker の概要
Docker は、オペレーティング システム レベルの仮想化テクノロジを使用してアプリケーションとその依存ライブラリをコンテナにパッケージ化し、それによってさまざまな環境でのアプリケーションの移植性と信頼性を実現する軽量のコンテナ化プラットフォームです。以下は、Docker の基本概念の一部です:

  1. 画像: Docker コンテナの基礎 これは、Docker コンテナの作成に使用できる読み取り専用のテンプレートです。カスタム イメージは、既存のイメージを構築、ダウンロード、または変更することで作成できます。
  2. コンテナ (コンテナ): Docker イメージの実行中のインスタンス。各コンテナは互いに分離されており、独自のファイル システム、プロセス スペース、およびネットワーク インターフェイスを持っています。
  3. リポジトリ: Docker イメージのストレージおよび共有プラットフォーム。リポジトリからイメージを取得し、構築したイメージをリポジトリにアップロードできます。

2. Spring Boot と Docker の統合
Spring Boot は、開発と Docker の統合を容易にするいくつかの機能を提供します。以下では、Spring Boot と Docker を統合するために一般的に使用されるベスト プラクティスをいくつか紹介します。

  1. 実行可能 JAR ファイルを作成する
    Spring Boot では、アプリケーション全体を実行可能 JAR ファイルにパッケージ化して、さまざまな環境での実行を容易にすることができます。次のプラグインを pom.xml ファイルに追加します。
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
ログイン後にコピー

mvn clean package コマンドを実行して、実行可能な JAR ファイルを生成します。

  1. Dockerfile の作成
    Dockerfile は、Docker イメージの構築に使用されるスクリプトであり、イメージの構築方法を説明する一連の手順が含まれています。以下は Dockerfile の例です:
FROM openjdk:8-jdk-alpine
COPY target/myapp.jar myapp.jar
EXPOSE 8080
CMD ["java", "-jar", "myapp.jar"]
ログイン後にコピー
ログイン後にコピー

このうち、FROM はベースイメージを openjdk:8-jdk-alpine として指定しており、COPY が実行可能になります。 JAR ファイルをイメージにコピーし、EXPOSE でコンテナのポートを公開し、CMD でコンテナの起動時に実行するコマンドを指定します。

  1. Docker イメージのビルド
    Dockerfile が存在するディレクトリを入力し、次のコマンドを実行してイメージをビルドします:
docker build -t myapp:1.0 .
ログイン後にコピー
ログイン後にコピー

その中に、- t はイメージを指定します。名前とバージョン番号 . は、Dockerfile が配置されているディレクトリを示します。

  1. Docker コンテナの起動
    次のコマンドを実行して Docker コンテナを起動します:
docker run -d -p 8080:8080 myapp:1.0
ログイン後にコピー
ログイン後にコピー

このうち、-d はコンテナの実行を意味します。バックグラウンドで、- pホストとコンテナ間のポート マッピングを指定します。

3. アプリケーションの例
以下では、Docker を使用してコンテナ化されたアプリケーションを開発およびデプロイする方法を示すために、単純な Spring Boot アプリケーションを例として取り上げます。

  1. Spring Boot プロジェクトを作成する
    次のコマンドを使用して、「myapp」という名前の Spring Boot プロジェクトを作成します:
spring init -n=myapp -g=com.example -a=myapp -d=web
ログイン後にコピー
  1. Docker サポートを追加します
    プロジェクトのルート ディレクトリに Dockerfile という名前のファイルを作成し、次の内容をファイルにコピーします。
FROM openjdk:8-jdk-alpine
COPY target/myapp.jar myapp.jar
EXPOSE 8080
CMD ["java", "-jar", "myapp.jar"]
ログイン後にコピー
ログイン後にコピー
  1. Docker イメージを構築する
    次のコマンドを実行して Docker イメージを構築します。
  2. ##
    docker build -t myapp:1.0 .
    ログイン後にコピー
    ログイン後にコピー
    Docker コンテナを開始する
  1. 次のコマンドを実行して Docker コンテナを開始します:
  2. docker run -d -p 8080:8080 myapp:1.0
    ログイン後にコピー
    ログイン後にコピー
      アプリケーションにアクセス
    1. Enter ## ブラウザで #http://localhost:8080
      アプリケーションにアクセスできます。
    2. 概要:
    この記事では、Docker と Spring Boot を使用してコンテナー化されたアプリケーションを開発およびデプロイするためのベスト プラクティスを紹介します。 Spring Boot アプリケーションを実行可能な JAR ファイルにパッケージ化し、イメージを構築するための Dockerfile を記述することで、コンテナ化されたアプリケーションを迅速に開発およびデプロイできます。 Docker を使用すると、分離された実行環境が提供され、アプリケーションの移植性と信頼性が確保されます。この記事が、読者が Docker と Spring Boot をより効果的に使用して、コンテナ化されたアプリケーションを開発およびデプロイするのに役立つことを願っています。

    以上がDocker と Spring Boot を使用してコンテナ化されたアプリケーションを開発およびデプロイするためのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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