Docker で Springboot プロジェクトを実行する実装

Docker で Springboot プロジェクトを実行する実装

導入:

springboot プロジェクトを実行する Docker の構成は実は非常にシンプルで、Linux 上で直接 springboot を実行するのとまったく同じです。始める

1: まず、Docker環境を実行する必要があります

ステップ 1: yum を使用してインストールする (CentOS 7 の場合)

Docker を使用するには、CentOS カーネル バージョンが 3.10 以降である必要があります。このページの前提条件をチェックして、お使いの CentOS バージョンが Docker をサポートしているかどうかを確認してください。

uname -rコマンドを使用して現在のカーネルバージョンを確認します。

[root@iZbp1gp1t778obaz5m8vk8Z ~]# uname -r
3.10.0-957.21.3.el7.x86_64

ステップ2: Dockerをインストールする

Docker パッケージとその依存関係は、デフォルトの CentOS-Extras ソフトウェア ソースにすでに含まれています。インストール コマンドは次のとおりです。

[root@iZbp1gp1t778obaz5m8vk8Z ~]# yum -y docker をインストールします

インストールが完了しました。

ステップ3: Dockerバックグラウンドサービスを開始する

[root@iZbp1gp1t778obaz5m8vk8Z ~]# サービス docker を開始

ステップ4: hello-worldをテストして実行する

[root@izwz99z5o9dc90keftqhlrz ~]# docker run hello-world
 
Dockerからこんにちは!
このメッセージは、インストールが正常に動作していることを示しています。
 
このメッセージを生成するために、Docker は次の手順を実行します。
 1. Docker クライアントが Docker デーモンに接続しました。
 2. Docker デーモンは Docker Hub から「hello-world」イメージを取得しました。
  (amd64)
 3. Dockerデーモンは、そのイメージから新しいコンテナを作成し、
  現在読んでいる出力を生成する実行可能ファイル。
 4. Dockerデーモンはその出力をDockerクライアントにストリーミングし、Dockerクライアントはそれを
  端末に。
 
もっと野心的なことに挑戦するには、次のコマンドで Ubuntu コンテナを実行できます。
 $ docker run -it ubuntu bash
 
無料の Docker ID を使用して、イメージを共有したり、ワークフローを自動化したりすることができます。
 参考:
 
その他の例やアイデアについては、以下をご覧ください。
 詳しくはこちら

ローカルに hello-world イメージがないので、hello-world イメージをダウンロードしてコンテナ内で実行します。それでは実際に使ってみましょう。

2: まずは独自のdocker springboot構成から始めましょう

ステップ 1: Docker を実行するための操作アカウントを作成します。新しく追加されました - 次のドキュメントの内容とは関係ありません [操作は通常、root では実行できません]

[root@iZbp1gp1t778obaz5m8vk8Z ~]# useradd -d /home/hn-docker -m hn-docker #操作アカウントを作成する [root@iZbp1gp1t778obaz5m8vk8Z ~]# 
[root@iZbp1gp1t778obaz5m8vk8Z ~]# passwd hn-docker #パスワードの変更 ユーザーhn-dockerのパスワードを変更しています。
新しいパスワード: 
パスワードが正しくありません: パスワードに何らかの形でユーザー名が含まれています
新しいパスワードを再入力してください: 
passwd: すべての認証トークンが正常に更新されました。
[root@iZbp1gp1t778obaz5m8vk8Z ~]# sudo groupadd docker #docker ユーザー グループを追加します。すでに存在する場合は必要ありません。 [root@iZbp1gp1t778obaz5m8vk8Z ~]# sudo gpasswd -a hn-docker docker ##ログインしているユーザーを docker ユーザー グループに追加します ユーザー hn-docker をグループ docker に追加しています

ステップ2: Dockerの運用とメンテナンスを開始する

[root@izwz99z5o9dc90keftqhlrz Docker]# pwd
/ルート/Docker
[root@izwz99z5o9dc90keftqhlrz ドッカー]# 
[root@izwz99z5o9dc90keftqhlrz ドッカー]# 
[root@izwz99z5o9dc90keftqhlrz Docker]# mkdir elasticsearch
[root@izwz99z5o9dc90keftqhlrz ドッカー]# 
[root@izwz99z5o9dc90keftqhlrz Docker]# cd elasticsearch/
[root@izwz99z5o9dc90keftqhlrz エラスティックサーチ]#

1. mvn installを実行してプロジェクトをjarパッケージにパッケージ化します。
2. jarパッケージを現在作成したフォルダにコピーし、Dockerfileファイルをフォルダにコピーします。

[root@izwz99z5o9dc90keftqhlrz elasticsearch]# Dockerfile をタッチする 
[root@izwz99z5o9dc90keftqhlrz elasticsearch]# vi Dockerfile 
 
# ベースイメージはJavaを使用しています
java:8より
# メンテナー shixiong <[email protected]>
# VOLUME は一時ファイル ディレクトリを /tmp として指定します。
# 効果は、ホストの/var/lib/dockerディレクトリに一時ファイルを作成し、それをコンテナの/tmpにリンクすることです。
ボリューム /tmp
# jar パッケージをコンテナに追加し、名前を app.jar に変更します。相対パスまたは絶対パスを使用できます。ここで、相対パスは ADD springboot-es6.jar /springboot-es6.jar です。
# jar パッケージを実行します RUN bash -c 'touch /springboot-es6.jar'
#タイムゾーンを設定します。そうしないと、現在の時刻より 8 時間遅くなります。RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/springboot-es6.jar"]

3: SpringbootプロジェクトをDockerにビルドし、Dockerイメージを生成する

3. フォルダーに入り、バージョンを指定してコマンドを実行するか、指定せずにコマンドを実行します。結果は異なります。 ! !

springboot をビルドします。
上記の構成: ランタイムコマンドは次のとおりです。
[root@izwz99z5o9dc90keftqhlrz elasticsearch]# docker run -d -p 8099:8099 springboot-es6:v1.0
 
 
springboot をビルドします。
上記の構成: ランタイムコマンドは次のとおりです。
[root@izwz99z5o9dc90keftqhlrz elasticsearch]# docker run -d -p 8099:8099 springboot-es6 

v1.0 で生成されたイメージでは、間違ったコマンドは次のようになります。

4: DockerでSpringbootプロジェクトを実行する

[root@izwz99z5o9dc90keftqhlrz elasticsearch]# docker run -d -p 8099:8099 springboot-es6
e7a56662f804ef72e7dcae3fa71e840c35e28e18aa1aff7e98b71d900b17c305
[root@izwz99z5o9dc90keftqhlrz エラスティックサーチ]#

5: インターフェースが使えるか確認する

インターフェースは完璧に使用されており、以下ではコンテナを管理してログを表示する方法について説明します。

これで、Docker で実行される springboot プロジェクトの実装に関するこの記事は終了です。Docker で実行される springboot に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerで複数のSpringbootを実行するための詳細なチュートリアル
  • SpringBoot プロジェクトの Docker 環境を実行するときに発生する無限再起動問題の詳細な説明
  • DockerでSpringbootプロジェクトを実行する方法

<<:  MySQLの詳細な分析で使用法と結果を説明します

>>:  jQuery は呼吸カルーセルを実装します

推薦する

Docker に MySQL と MariaDB をインストールする方法

MySQLとMariaDBの関係MariaDB データベース管理システムは MySQL のブランチで...

MySQL 文字列分割操作 (区切り文字を含む文字列のインターセプション)

区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...

Mysql GTID Mha 設定方法

Gtid + Mha + Binlog サーバー構成: 1: テスト環境OS: CentOS 6.5...

CentOS 8 / RHEL 8 に VirtualBox 6.0 をインストールするための詳細なチュートリアル

VirtualBox は、技術者が異なる種類の複数の仮想マシン (VM) を同時に実行できるようにす...

CSS 不透明度子要素が親要素の透明度を継承するためのソリューションの詳細な説明

プロジェクト ページの作成中に、子要素が親要素の透明度を継承するという問題に遭遇しました。多くのドキ...

Ubuntu 16.04 64 ビット版の VMware Tools のインストールと構成のグラフィック チュートリアル

この記事では、VMware Toolsのインストールと構成に関するグラフィックチュートリアルを参考と...

MySQL sql_mode の変更が有効にならない理由と解決策

目次序文シナリオシミュレーション要約する序文最近、sql_mode の話題については何度も話し合われ...

シンプルなショッピングカート機能を実現するjs

この記事の例では、簡単なショッピングカート機能を実現するためのjsの具体的なコードを参考までに共有し...

CentOS7にsshをインストールして設定する

1. openssh-serverをインストールする yum インストール -y openssl o...

Vue で Alibaba のアイコンフォント ベクター アイコンを使用する方法について

インターネット上には多くのインポート方法があり、公式も3つのインポート方法を提供していますが、インポ...

MySQL の group by と order by を一緒に使用する方法

テーブル:reward(報酬テーブル)があるとします。テーブル構造は次のようになります。 テーブルt...

Linux の sudo 脆弱性により不正な特権アクセスが発生する可能性がある

Linux で新たに発見された sudo の脆弱性を悪用すると、特定のユーザーが root としてコ...

Ubuntu 20.04 では、隠し録音ノイズ低減機能が有効になります (推奨)

最近、 Ubuntu 20.04でkazamを使用して録音しているときに、問題が見つかりました。シス...

CSS で点線の境界線のスクロール効果を実装するサンプルコード

マウスをある領域の上に置くと、その領域に点線の境界線と線のアニメーションが表示されるというクールな効...

MySQLで最大接続数を達成する方法

目次データベース接続数が急増した理由は何ですか? 1. はじめに2. 知識ポイント3. 練習するIV...