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タグの背景色をキャンセルする方法

推薦する

Linux echo テキスト処理コマンドの使用法と例

Linux ヘルプ ドキュメントでの echo の説明は、Python や Java などのプログラ...

Vueはチャットインターフェースを実装する

この記事の例では、チャットインターフェースの表示を実現するためのVueの具体的なコードを参考までに共...

MySQL マスタースレーブレプリケーションプロセスの詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスター データベースの DDL および DML...

Mysql SQL ステートメント演習 (50 問)

テーブル名とフィールド–1. 学生リスト学生 (s_id、s_name、s_birth、s_sex)...

XHTMLにおけるH1タグの位置について

最近、H1 については多くの議論が行われていますが (記事のコンテンツ ページ内)、おおよそ 2 つ...

jsを使って簡単な計算機を作る

この記事では、jsで簡単な計算機を作成する具体的なコードを参考までに共有します。具体的な内容は次のと...

フロントエンドにアニメーション遷移効果を実装する方法

目次導入従来のトランジションアニメーションCSS トランジションアニメーションjsアニメーション従来...

MySQL の日付関数と日付変換およびフォーマット関数

MySQL は、膨大なユーザーベースを持つ無料のリレーショナル データベースです。この記事では、My...

Linux lsof コマンドの使用方法の詳細な説明

lsof (開いているファイルのリスト) は、プロセスによって開かれたファイルを表示するツールです。...

セマンティック HTML タグの紹介

ここ数年、ウェブサイト開発では DIV+CSS が非常に人気があり、当時は大きな騒動を引き起こしまし...

Dockerを使用して開発環境を構築する方法を素早く習得します

プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...

MySQLリモート接続権限の詳細な説明

1. MySQLデータベースにログインするmysql -u ルート -pユーザーテーブルを表示する ...

Docker で Redis クラスターを素早く構築する方法の例

Redis クラスターとはRedis クラスターは、R​​edis が提供する分散データベース ソリ...

ウェブサイトに天気予報を挿入する方法

天気予報をウェブサイトに挿入すると、次のような効果が得られます。次のコードを挿入する必要があります:...

ElementUI コンポーネント el-dropdown (落とし穴)

選択して変更: クリックすると現在の値が表示され、ページ UI が表示され、CSS スタイルが変更さ...