目次
プロジェクト ディレクトリ
dockerfile ファイル
ファイルのデプロイメント
イメージの生成
コンテナの開始
Access web
#jar パッケージ マッピングのデプロイメント
スクリプトのデプロイメント
解決策: docker を再起動します。
ホームページ Java &#&チュートリアル Docker が SpringBoot をデプロイし、jar パッケージを置き換える方法

Docker が SpringBoot をデプロイし、jar パッケージを置き換える方法

May 12, 2023 pm 02:16 PM
docker jar springboot

プロジェクト ディレクトリ

Docker が SpringBoot をデプロイし、jar パッケージを置き換える方法

dockerfile ファイル

後で使用する dockerfile ファイルを作成します。

ファイルのデプロイメント

サーバー上に新しい /data/docker/hellolearn フォルダーを作成し (ファイル パスはカスタマイズ可能)、Maven でパッケージ化された jar パッケージと上で作成した dockerfile ファイルを次の場所にコピーします。サーバー 新しいフォルダー (/data/docker/hellolearn) を作成します。

Docker が SpringBoot をデプロイし、jar パッケージを置き換える方法

イメージの生成

docker build -t hellolearn .

docker build -t イメージ名: label dockerfile相対位置。ドットは現在のディレクトリを表します。タグが書き込まれていない場合のデフォルトは、latest です。

Docker が SpringBoot をデプロイし、jar パッケージを置き換える方法

コンテナの開始

docker run -d -p 8301:8301 --name hellolearn hellolearn

docker start hellolearn

-d パラメーターを使用すると、コンテナーをバックグラウンドで実行できます。--name は指定したコンテナーの名前です。-p はポート マッピング用です。このとき、8301 (コロンの前のポート) ) サーバーのポートはコンテナにマッピングされます 8301 (コロンの後のポート) ポート (application.properties は 8301 で構成されます)

Access web

Docker が SpringBoot をデプロイし、jar パッケージを置き換える方法

#jar パッケージ マッピングのデプロイメント

上記の手順に従うだけで、springboot の docker デプロイメントのプロセス全体を簡単に処理できます。ただし、コンテナーを起動した後は、jar パッケージを更新する必要があるたびに、イメージを再作成し、その後コンテナーを再作成する必要があります。このプロセスは非常に面倒で非効率的です。では、イメージやコンテナを更新せずに、jar パッケージを直接更新してデプロイを完了するにはどうすればよいでしょうか?

5.1 dockerfile を更新します

最終行 エントリポイント ["java","-jar","/data/learn-web-0.0.1-snapshot.jar"] コンテナーの /data ディレクトリーにある learn-web-0.0.1-snapshot.jar ファイルが実行されます。

5.2 docker build コマンドを使用してイメージを構築します

docker build -t hellolearn .

5.3 コンテナーを作成して起動します

docker run --name hellolearn -it -v /data/docker/newhellolearn/package:/data -d -p 8301:8301 hellolearn

-v ホスト ディレクトリが関連付けられていますコンテナディレクトリと一緒に。このようにして、ホストの /data/docker/newhellolearn/package ディレクトリは docker の /data ディレクトリにマップされます。

この場合、jar パッケージが変更されたときに、ホストの /data/docker/newhellolearn/package ディレクトリ内の jar パッケージを直接更新できます。jar パッケージを更新した後、コンテナーを再起動する必要があります。

スクリプトのデプロイメント

jar パッケージのデプロイメント方法で問題が発生し、バージョン番号の変更など、jar パッケージ名が変更されると (learn-web-0.0.1-snapshot.jar--) > >learn-web-1.0.1-snapshot.jar)。何をする必要がありますか?スクリプトを使用した 3 番目の展開方法を以下に紹介します。

6.1 hellolearn.sh ファイルの作成

java -jar /data/learn-web-0.0.1-snapshot.jar

hellolearn を実行します。 sh は /data/docker/hellolearn/scriptdeploy/package にアップロードされます。このフォルダー パスはカスタマイズできます。このフォルダー パスは後で使用するため、覚えておいてください。

6.2 スクリプト実行権限の追加

chmod x hellolearn.sh

6.3 dockerfile の作成

cmd ["sh ","-c","/data/hellolearn.sh"] コンテナの起動時に、6.1 で作成された hellolearn.sh スクリプトが開始されることを示します。

上記の最後のコマンドは、entrypoint ですが、スクリプトのデプロイメントでは cmd に変更されていることに注意してください。entrypoint と cmd の具体的な違いに興味がある場合は、詳細を確認してください。

6.4 jar パッケージのアップロード

jar パッケージを hellolearn.sh と同じフォルダー ディレクトリ、つまり /data/docker/hellolearn/scriptdeploy/package に配置し、このディレクトリを追加しますコンテナー (ホスト ディレクトリ) を作成すると、コンテナーの /data ディレクトリにマップされます。 。

6.5 ファイル ディレクトリ構造図

Docker が SpringBoot をデプロイし、jar パッケージを置き換える方法

#ここでのディレクトリ構造について混乱しているかどうかはわかりませんが、私のディレクトリ構造図をアップロードします。ホストマシンが一目でわかるように。

6.6 イメージの作成

docker build -t hellolearn-script .

最後のドットは現在のディレクトリを表すため、次のコマンドを実行します。イメージを生成するには、dockerfile が配置されているディレクトリで実行する必要があります。

6.7 コンテナーの作成と開始

docker run --name hellolearn-script -it -v /data/docker/hellolearn/scriptdeploy/package:/data -d -p 8302 :8301 hellolearn-script

docker start hellolearn-script

ホストの /data/docker/hellolearn/scriptdeploy/package ディレクトリをコンテナの /data ディレクトリ マッピングに関連付けます。この場合、jar パッケージが変更されたときに、ホスト ディレクトリ内の jar パッケージを直接更新するだけです。 jar パッケージの名前が変更された場合でも、hellolearn.sh スクリプトを更新する必要があります。更新後にコンテナを再起動します。

6.8 Web テストの効果

Docker が SpringBoot をデプロイし、jar パッケージを置き換える方法

##docker ログの表示

docker ログ [オプション] コンテナー ID

オプションの説明:

-f: トレース ログ出力

--since: 特定の開始時刻のすべてのログを表示
-t: タイムスタンプを表示
-- tail:最新の n 個のコンテナー ログのみを一覧表示します

7.1 指定した時間以降のログを表示し、最後の 100 行のみを表示します:

docker logs -f -t --since ="2020-10-01" --tail=100 コンテナ ID

7.2 指定した期間のログを確認します

docker logs -t --since = "2020-10-01t19:00:00" -- "2020-10-01t19:00:00" コンテナ ID

7.3 指定した時間以降のログを表示します:

#docker logs -t --since="2020-10-01t19:00:00" コンテナー ID

7.4 過去 5 分間のログを表示します:

#docker logs --since 5mcontainer id

7.5 exec コマンドを使用して指定されたコンテナ上で bash を実行します:

docker exec hellolearn -it /bin/bash

または

docker exec -it hellolearn bash

7.6 docker ip

docker Inspection --format='{{.networksettings.ipaddress}}' hellolearn を表示する

発生した問題

問題の説明: デーモンからのエラー応答: ドライバーがエンドポイント flamboyant_leavitt での外部接続のプログラミングに失敗しました (iptables が失敗しました: iptables --wait -t nat -a docker -p tcp -d 0/0 --dport 8301 -j dnat --to-destination 172.17.0.2:8301 ! -i docker0: iptables: nochain/target/match by that name.

解決策: docker を再起動します。

systemctl 再起動ドッカー

以上がDocker が SpringBoot をデプロイし、jar パッケージを置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerによってコンテナを出る方法 Dockerによってコンテナを出る方法 Apr 15, 2025 pm 12:15 PM

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

Dockerを再起動する方法 Dockerを再起動する方法 Apr 15, 2025 pm 12:06 PM

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop< container_id>);コンテナを起動します(docker start< container_id>);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Dockerによってコンテナを起動する方法 Dockerによってコンテナを起動する方法 Apr 15, 2025 pm 12:27 PM

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerからログを表示する方法 Dockerからログを表示する方法 Apr 15, 2025 pm 12:24 PM

Dockerログを表示する方法は次のとおりです。たとえば、Docker Logsコマンドを使用します。たとえば、Docker logs container_name docker execコマンドを使用して /bin /shを実行し、logファイルを表示します。 cat /var/log/container_name.log docker-compose -f docker-comのDocker ComposeのDocker-Composeログを使用します。

See all articles