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 は呼吸カルーセルを実装します

推薦する

Vue+Router+Element でシンプルなナビゲーションバーを実装する

このプロジェクトでは、Vue+Router+Element の具体的なコードを共有して、シンプルなナ...

Docker パッケージング ノード プロジェクトのプロセスの説明

バックエンド プログラマーとして、フロントエンドのものをいじらなければならないこともあります。そこで...

Docker での Jenkins と Docker を使用した継続的デリバリー

1. 継続的デリバリーとは何かソフトウェア製品の出力プロセスは、ソフトウェアがいつでもリリースできる...

vue-router を遅延ロードする 3 つの方法のまとめ

遅延読み込みを使用しない 'vue' から Vue をインポートします。 '...

燃える炎効果の英語フォント16種類をシェアする

私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...

JSで画面録画機能を作成する

OBS studioかっこいいですが、 JavaScriptもっとかっこいいです。では、 JavaS...

Ubuntu 14.04 で QT5 をインストール、設定、アンインストールするための詳細な手順

1. 以前 QT5.13 バージョンをダウンロードしましたが、インストール後、Qtcreator を...

MySQLインデックスの基本構文

インデックスはソートされたデータ構造です。 where 条件での検索や order by 条件での並...

LinuxソースコードからTIME_WAITの期間を分析する

目次1. はじめに2. まずLinux環境を紹介しましょう3. TIME_WAIT状態遷移図4. 継...

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...

効果的なウェブフォームのための 8 つのルール

ユーザーから情報を収集する場合、Web フォームを使用するより簡単で直接的な方法はありません。適切に...

フレックスとポジションの互換性の詳細な説明マイニングノート

今日は、すべてのブラウザ (主に IE 9 以上と Chrome) と互換性のある自分のホームページ...

Jenkinsを使用してプロジェクトを別のホストにデプロイするプロセス

環境ホスト名IPアドレス仕えるジェンキンス192.168.216.200トムキャット、ジェンキンスサ...

MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック

この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...