Springboot アプリケーションを迅速にデプロイするために Docker とアイデアを統合する詳細なプロセス

Springboot アプリケーションを迅速にデプロイするために Docker とアイデアを統合する詳細なプロセス

1. はじめに

コンテナ化という言葉は誰もが知っていると思います。コンテナ化という言葉を聞くと、docker、k8s、jenkins、rancher などを思い浮かべるかもしれません。そこで今日は、idea が docker を使用して SpringBoot アプリケーションを迅速にデプロイする方法についてお話します。

2. 環境とツール

  • Windows 10 (開発)
  • Centos 7.6 (デプロイメント)
  • アイデア
  • ドッカー
  • xシェル

3. Dockerをインストールし、リモート接続を構成する

インターネット上で Docker をインストールするには多くの手順があるため、ここでもう一度それらについて説明します。

最初に更新

sudo yum アップデート

最新のdockerをインストールする

yum で docker をインストール -y

図のように設置後

Dockerを起動する

systemctl ドッカーを起動する

docker imagesを使用すると、イメージのステータスを表示できます。次の図は、起動が成功したことを示しています (現在、イメージはありません)

ここに画像の説明を挿入

下記のように表示される場合は起動に失敗したことを意味します

ここに画像の説明を挿入

dockerリモート接続を開き、 docker.serviceファイルを編集します。

vim /lib/systemd/system/docker.service

開封後の内容は以下の通りです。

ここに画像の説明を挿入

緑色のカーソルがある行に次のコードを追加します。

# centos7 以上 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
# centos7 以下 ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

ここでは 12377 などの他のポートを使用します。変更後の内容は以下のようになります。

ここに画像の説明を挿入

保存したら、設定ファイルを再読み込みして Docker を再起動します。

systemctlデーモンリロード 
systemctl dockerを再起動します

ポート12377がリッスンされているかどうかを確認するには、 lsof -i:12377を実行します。

ここに画像の説明を挿入

クラウドサーバーを使用している場合は、12377 ファイアウォール ルールを有効にする必要があります。デフォルトのポート 2375 を使用する場合は、仮想マシンまたはイントラネットでのみ使用しても問題ありません。パブリック ネットワークに公開されている場合は、翌日に CPU がいっぱいになり、大量の馬や採掘プログラムがマウントされていることに気付くでしょう。時間のある学生は、セキュリティ構成をさらに構成できます。ここで検索できます。

4. アイデアはリモートDockerに接続します

Dockerプラグインをインストールする

ここに画像の説明を挿入

設定接続がインストールされたら、以下に示すように設定内の場所を見つけます。

ここに画像の説明を挿入

次の形式で TCP ソケット上の Docker アドレスを設定します。
tcp://ip:12377 。入力後、しばらく待つと接続テストが行​​われます。接続に成功すると上図のように表示されます。 5. Springbootプロジェクト構成docker pom構成ブロガーの現在のプロジェクトパッケージ方法はjarパッケージであり、pomのプロパティ構成は次のとおりです。

<プロパティ>
    <!-- プロパティ ノード "springboot" に Docker イメージのプレフィックスを設定します -->
    <docker.image.prefix>スプリングブート</docker.image.prefix>
</プロパティ>

ビルドは次のように構成されます。

 <ビルド>
        <finalName>docker-デモ</finalName>
        <プラグイン>
            <プラグイン>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <バージョン>${spring-boot.version}</バージョン>
            </プラグイン>
            <プラグイン>
                <!-- docker-maven プラグイン -->
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <バージョン>1.0.0</バージョン>
                <構成>
                    <dockerホスト>http://ip:12377</dockerホスト>
                    <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名>
                    <dockerディレクトリ>src/main/docker</dockerディレクトリ>
                    <リソース>
                        <リソース>
                            <ターゲットパス>/</ターゲットパス>
                            <ディレクトリ>${project.build.directory}</ディレクトリ>
                            <include>${project.build.finalName}.jar</include>
                        </リソース>
                    </リソース>
                </構成>
            </プラグイン>
        </プラグイン>
    </ビルド>

resourcesはパッケージ化されたjarを見つけるためのもので、dockerDirectoryはプロジェクトで設定されたDockerfile見つけるためのもので、imageNameはイメージ名です。

Dockerfile を作成します (Dockerfile はキャメルケースではないことに注意してください)
構造は下図の通りです

ここに画像の説明を挿入

Dockerfile ファイルの内容:

FROM williamyeh/java8 # ソースは docker search java8 を使用して検索できます。VOLUME /tmp
docker-demo.jar を追加します /app/docker-demo.jar
#COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
エントリポイント ["java", "-jar", "/app/docker-demo.jar"]

FROM : ベースイメージを指定します。最初のコマンドである必要があります。
VOLUME : 永続的なディレクトリを指定するために使用します
ADD : コンテナにローカルファイルを追加します。Tar ファイルは自動的に解凍されます (ネットワーク圧縮リソースは解凍されません)。wget と同様に、ネットワークリソースにアクセスできます。
ENTRYPOINT : コンテナを実行可能にする設定

他の指示は自分で検索できます

  • ここまでで必要な設定は完了です。
  • アイデアの右側にあるMavenウィンドウを見つけて、cleanを実行します。

ここに画像の説明を挿入

クリーンアップが完了したら、パッケージごとにパッケージを実行します。

ここに画像の説明を挿入

次に、図に示すようにdocker:buildを実行します。

ここに画像の説明を挿入

このプロセスでは、ターゲットディレクトリにdockerフォルダが作成され、 Dockerfileファイルと生成された jar パッケージがコピーされます。次に、Dockerfile 内の構成に従って、ベースイメージがプルされ、jar がサーバーの指定された場所に転送され、イメージが作成されます。ビルドが成功したら、アイデアの下部にあるServicesをクリックします。

ここに画像の説明を挿入

ウィンドウは次のようになります

ここに画像の説明を挿入

Docker をダブルクリックして接続します。接続が成功すると、イメージとコンテナの実行ステータスが表示されます。

ここに画像の説明を挿入

次に、springboot/**:latestイメージを右クリックしてコンテナを作成します。

ここに画像の説明を挿入

設定を作成するための作成オプションがポップアップ表示されます

ここに画像の説明を挿入

コンテナ名と実行オプションを設定し、最後に「実行」をクリックしてコンテナを実行します。サービス ウィンドウで、コンテナの実行ログを確認できます。

ここに画像の説明を挿入

ここまでで、dockerを統合してSpringbootアプリケーションを素早くデプロイするというアイデアは完成しました。jenkins+k8s+dockerの使い方については後ほどまとめます。

これで、Springboot アプリケーションの idea integration docker quick deploy に関するこの記事は終了です。さらに関連する idea docker deploy springboot コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • SpringBoot アプリケーションの Docker デプロイメントの実装手順
  • SpringBoot と Docker の統合の詳細なプロセス
  • SpringBoot プロジェクトの Docker クイック デプロイメントの紹介

<<:  2012年のベストWebデザイン作品レビュー[パート1]

>>:  H5でクリックされたときにaタグの背景色をキャンセルする方法

推薦する

Tkinterはjsキャンバスを使用してグラデーションカラーを実現します

目次1. RGBを使用して色を表す2. Tkinter キャンバスコンポーネント3. グラデーション...

ウェブページ作成における絶対パスと相対パスの違い

1. 絶対パスまず、ローカル コンピューターでは、ファイルの絶対パスは、当然、ハード ディスク上でフ...

vmware workstation12 インストール CentOS プロンプト VMware Player と Device/Credential Guard に互換性がない、理由と解決策

最新バージョンの WIN10 では、Microsoft は仮想化コンテナに基づくセキュリティ メカニ...

mysql 5.7.19 最新バイナリインストール

まず、公式ウェブサイト http://dev.mysql.com/downloads/mysql/ ...

Nginx の http リソース リクエスト制限の詳細な説明 (3 つの方法)

前提条件: nginx には、ngx_http_limit_conn_module モジュールと n...

MySQL学習データベース検索文DQL小百章

目次1. データの簡単な取得2. データの並べ替えと取得2.1. 基本構文2.2. ソート方向を指定...

WeChatミニプログラム公式顔認証の詳しい説明

ミニプログラムはユーザーの個人情報を収集してアップロードしましたが、拒否されました。こんにちは、ミニ...

MySQL パフォーマンス最適化インデックス プッシュダウン

インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...

2019 年に最も役立ち重要なオープンソース ツール トップ 10

Black Duck の 2017 年のオープンソース調査では、回答者の 77% がオープンソース...

mysql バックアップ戦略の実装 (フルバックアップ + 増分バックアップ)

目次設計シナリオ技術的なポイントサーバー情報準備フルバックアップスクリプト(Mysql-FullyB...

MySQL Routerのインストールと展開

目次01 MySQLルーターの紹介MySQL Router とは何ですか? 02 MySQLルータの...

three.js で 3D ダイナミック テキスト効果を実現する方法

序文みなさんこんにちは。CSS ウィザードの alphardex です。以前、海外のウェブサイトを閲...

Windows システムに mysql5.7.21 をインストールするための詳細なチュートリアル

MySQL インストーラーは、MySQL ソフトウェアのあらゆるニーズに対応する、使いやすいウィザー...

ツールベースのウェブサイトの考察: ツールベースのウェブサイトの定義と典型的なケース分析 (写真とテキスト)

ツール型ウェブサイトについて、まず疑問に思うのは、無数のオンラインウェブサイトの中で、どのようなウェ...