Linux DockerでSpringbootプロジェクトを実行するための詳細な手順

Linux 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: インターフェースが使えるか確認する

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

Linux Docker で springboot プロジェクトを実行する方法についてはこれで終わりです。Docker で springboot プロジェクトを実行する方法については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順
  • Dockerを使用してSpringBootプロジェクトをデプロイする方法
  • Dockerfile を使用して SpringBoot プロジェクトをデプロイする方法
  • Springbootプロジェクトでwarパッケージdockerパッケージをビルドし、リソースの下に静的リソースが見つからない場合の解決策
  • SpringbootプロジェクトのDockerデプロイメント実践の詳細な説明

<<:  CSS を使用して複数の方法で下揃えを実装するサンプル コード

>>:  Mysql 主キー UUID と自動増分主キーの違いと利点と欠点

推薦する

Ubuntu 18.04 のsources.listをAlibabaまたはTsinghuaミラーに変更する方法

1. バックアップソースリストUbuntu のデフォルトのソースは国内サーバーではないため、更新され...

Linuxはsttyを使用して端末の回線設定を表示および変更します。

Sttty は、Linux で端末設定を変更および印刷するための一般的なコマンドです。 1. パラ...

LinuxベースのApacheウェブサイトサービス構成の詳細な説明

オープンソース ソフトウェアである Apache は、最も広く使用されている Web アプリケーショ...

TypeScript インターフェース定義ケースチュートリアル

インターフェースの役割:インターフェース (英語: interface) の機能は、簡単に言えば、コ...

アダプティブ Web デザインを実現する方法に関する関連知識ポイントの要約

「アダプティブ Web デザイン」はどのように機能しますか?実はそれほど難しいことではありません。 ...

Vue を使用してモバイル APK プロジェクトを完了することについての簡単な説明

目次基本設定エントリファイル main.jsアプリ.vue表紙ヘッダー検索バー本体当プロジェクトでは...

事例を通してLinux NFSの仕組みを詳細に分析

前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...

jsは動的にテーブルを生成します(ノード操作)

この記事の例では、テーブルを動的に生成するjsの具体的なコードを参考までに共有しています。具体的な内...

ZFS とは何か? ZFS を使用する理由とその機能

ZFSの歴史Z ファイル システム (ZFS) は、2001 年に Matthew Ahrens と...

Linux サーバーの状態を監視する方法

私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリテ...

MySQL の連結で複数の一重引用符と三重引用符を使用する際の問題

文字列を動的に連結する場合、文字連結を使用することが多いです。次のような連結の引用符の意味がわかりま...

純粋な CSS で中空効果を実現するためのサンプルコード

私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...

HTML ウェブページのブラウザタイトルバーに小さなアイコンを表示する方法

この効果と同様に、方法も非常に簡単です。ヘッダーに次のように記述します: <link rel=...

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...