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

推薦する

xtrabackup による MySQL データベースのバックアップと復元

mysqldump バックアップは、その独自の特性 (テーブルのロック、基本的に挿入スクリプトまたは...

React Native環境のインストールプロセス

react-native インストールプロセス1.npx react-native init Awe...

JavaScript は最大値と最小値のアルゴリズムを通じて AI 三目並べゲームを実装します

では、早速スクリーンショットを実行してみましょう。黒い駒はプレイヤーの位置、赤い駒はコンピュータの位...

HTML の blockquote タグの使用と美化

ブロック引用の定義と使用法<blockquote> タグは引用ブロックを定義します。 &...

MySQL 結合テーブルと ID 自動増分の例の分析

結合の書き方左結合を使用する場合、左側のテーブルが必ず駆動テーブルになりますか? 2 つのテーブルの...

JavaScript キャンバスはマウスの動きに合わせてボールを動かすことを実装します

この記事の例では、マウスに従ってボールを動かすjsの具体的なコードを参考までに共有しています。具体的...

CSS3 で複数のカスタムフォントを導入する

今日、HTML に問題を発見しました。多くのデフォルト フォントが提供されていますが、「Bold」、...

Linux ディスク管理 LVM の使用

1. LVM の概要Linux ディスクを管理するときに、このような状況に遭遇することがよくあります...

Dockerコンテナのいくつかの保存方法の詳細な説明

目次前面に書かれた複数のストレージマウント方法1.バインドマウント2. 巻数3.tmpfsマウントス...

Vueはアンカー配置機能を実装します

この記事では、アンカー配置を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

ビジュアルデザインとインタラクションデザインについて

<br />製品設計プロセス全体において、ビジュアルデザインとインタラクションデザインの...

優れた登録プロセスの手順

ウェブサイトにとって、これは最も基本的な機能です。それでは、登録プロセスに含まれる手順を見てみましょ...

Apache Tika を使用してファイルが破損しているかどうかを検出する方法

Apache Tika は、さまざまな形式のファイルからファイル タイプを検出し、コンテンツを抽出す...

Firefox または IE でスパン幅が決定されない場合の解決策

コードをコピーコードは次のとおりです。 <html xmlns="http://ww...

React Nativeのカスタムルーティング管理に関する深い理解

目次1. カスタムルーティング2. タブナビゲーション3. データの返却要約する1. カスタムルーテ...