Dockerは複数のSpringbootを実行する 1番目: ポートマッピング 2番目: メモリサイズの指定 3番目: 物理ファイルの読み取りと書き込み 4番目: ログファイル 5番目: 複数のコンテナの内部ネットワークアクセス 6番目: 発生した問題 1: ポートマッピング Nginx は転送を使用するため、これが最も簡単です。 [hn@iZbp1gp1t778obaz5m8vk8Z ガイド]$ docker run -d -p 8093:8093 ガイド収集 物理ポートを仮想ポートにマップするだけです。これは非常に簡単です。 2番目: メモリサイズを指定する -m, --memory メモリ制限。形式は数値と単位です。単位は b、k、m、g のいずれかです。最低4M --memory-swap メモリの合計制限 + スワップ パーティション サイズ。上記と同じ形式です。 -m --memory-reservation メモリ制限によって設定されたソフト制限よりも大きくする必要があります。上記と同じ形式 --oom-kill-disable OOM キラーがコンテナを強制終了するのを防ぐかどうか。デフォルトでは設定されていません --oom-score-adj OOM キラーによって強制終了されるコンテナの優先度。範囲は [-1000, 1000]、デフォルトは 0 です --memory-swappiness は、コンテナの仮想メモリ制御動作を設定するために使用されます。値は 0 から 100 までの整数です。 --kernel-memory カーネル メモリの制限。上記と同じ形式、最小サイズは4M 例: [hn@iZbp1gp1t778obaz5m8vk8Z ガイド]$ docker run -d -m 1G --memory-swap 4G -p 8093:8093 ガイド収集 3番目: 物理ファイルの読み取りと物理ファイルの書き込み 上記 2 つの状況は起動時に読み込まれますが、実行中にローカル ファイルを継続的に読み取る必要がある場合はどうすればよいでしょうか。 [hn-docker@iZbp1gp1t778obaz5m8vk8Z ~]$ docker run -d -m 1G --memory-swap 4G -p 8092:8092 \ -v /home/hn-docker/docker/wechat:/springboot/wechat \ ガイドメッセージ メッセージコンテナの起動は、イメージ内のファイルアドレスを物理マシン上のアドレスにマッピングすることと同じです。たとえば、イメージアドレスは次のようになります: /springboot/wechat 物理アドレス: /home/hn-docker/docker/wechat バインドマウント バインド マウント モードはボリュームと非常によく似ています。違いは、バインド マウント モードではホスト上の任意のファイルまたはフォルダーがコンテナーにマウントされるのに対し、ボリュームでは基本的に Docker サービスによって管理される領域 (デフォルトは /var/lib/docker/volumes の下のフォルダー) がコンテナーにマウントされる点です。 バインドマウントの使用方法はボリュームの使用方法と似ており、ホストファイルは $ docker run -d \ --name=nginxtest \ --mount type=bind、source=/usr/local/web、destination=/usr/share/nginx/html \ マウントタイプ=bind、source=/usr/local/web、destination=/usr/share/nginx/html \ nginx:最新 上記の例では、ホスト上の /usr/local/web フォルダーをコンテナー内の /usr/share/nginx/html フォルダーにマウントします。 または $ docker run -d \ --name=nginxtest \ -v /usr/local/web:/usr/share/nginx/html \ nginx:最新 詳細については、Docker データストレージのバインドマウントの詳細な説明を参照してください。 4番目: ログファイル ステップ 1: 実行中のコンテナの ID を取得します: da3199e9d032 [hn@iZbp1gp1t778obaz5m8vk8Z ガイド]$ docker ps コンテナID イメージ コマンド 作成ステータス ポート名 da3199e9d032 guides-collect "java -Djava.secur..." 2 時間前 2 時間前 0.0.0.0:8093->8093/tcp sharp_mirzakhani ステップ 2: 実行中のログをクエリする - 完了 [hn@iZbp1gp1t778obaz5m8vk8Z ガイド]$ docker logs -f 51c384b8afee 参考情報: コマンド形式: $ docker logs [オプション] コンテナ オプション: --details 詳細情報を表示 -f, --follow リアルタイムログを追跡 --since string 特定のタイムスタンプまたは相対時間(42m(つまり42分)など)以降のログを表示します --tail string ログの末尾から何行表示するかを指定します。デフォルトはすべてです。 -t, --timestamps タイムスタンプを表示する --until string 特定のタイムスタンプ、または 42m (つまり 42 分) などの相対時間より前のログを表示する 例: 指定した時間後のログを表示し、最後の 100 行のみを表示します。 $ docker logs -f -t --since="2018-02-08" --tail=100 コンテナID 過去 30 分間のログを表示します。 $ docker logs --since 30m CONTAINER_ID 一定時間後にログを表示します。 $ docker logs -t --since="2018-02-08T13:23:37" コンテナID 一定期間のログを表示します。 $ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" コンテナID 5番目: ホストとコンテナのネットワーク相互作用 問題の説明: Docker で実行されている springboot がホストの Redis にアクセスして他のコンテナの MySQL を取得しようとすると、困惑しますか? 解決策: ホスト コンテナのソフト接続 IP を照会し、イントラネット IP を使用してアクセスする必要があります。docker examine -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' xxxid (コンテナ ID) 例えば: [yn@iZbp1gp1t778obaz5m8vk8Z ログ]$ docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 abe77b60254a アシスタント "java -Djava.secur..." 6 分前 6 分前にアップ 0.0.0.0:9304->8091/tcp nostalgic_albattani 37c6dd777636 collect "java -Djava.secur..." 30 時間前 30 時間前 0.0.0.0:8093->8093/tcp silly_poincare 4dcb9fcae281 メッセージ「java -Djava.secur...」 3 日前 3 日前 0.0.0.0:8092->8092/tcp reverent_galileo たとえば、次のことを確認するには: abe77b60254a このコンテナのネットワークアドレス [yn@iZbp1gp1t778obaz5m8vk8Z logs]$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' abe77b60254a 172.17.0.4 現時点では: abe77b60254a コンテナの IP アドレスは 172.17.0.4 です。 アクセスしたい場合は、イントラネットアドレス172.17.0.4を使用します。同時に、ホストマシンのIPは172.17.0.1である必要があることもわかります。 6番目: 遭遇する落とし穴 1: ミラーの起動に失敗した場合、ログの表示方法 起動に失敗した後、どのイメージIDであるかを確認し、ログを使用して確認する必要があります: docker logs -f image id 例えば: [yn@iZbp1gp1t778obaz5m8vk8Z ログ]$ docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 abe77b60254a アシスタント "java -Djava.secur..." 6 分前 6 分前にアップ 0.0.0.0:9304->8091/tcp nostalgic_albattani 37c6dd777636 collect "java -Djava.secur..." 30 時間前 30 時間前 0.0.0.0:8093->8093/tcp silly_poincare 4dcb9fcae281 メッセージ「java -Djava.secur...」 3 日前 3 日前 0.0.0.0:8092->8092/tcp reverent_galileo このコンテナログの最新の10行を確認します [yn@iZbp1gp1t778obaz5m8vk8Z ~]$ docker logs -f -t --tail 10 abe77b60254a 2. データベースに保存されたログ時間またはデータは、実際の時間より8時間短い /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime を実行し、 echo 'Asia/Shanghai' >/etc/timezone を実行します。 これで、Docker で複数の Springboot を実行する詳細なチュートリアルに関するこの記事は終了です。Docker で複数の Springboot を実行する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux に mysql をインストールするときに /etc に my.cnf ファイルがない問題を解決する
>>: webpackでCSSを分割・圧縮し、リンクでインポートする手順
最近、業務上のボタンの増加により、ページレイアウトにボタンが多すぎて、ページが美しくなく、ユーザーエ...
ログイン + セッションストレージエフェクト表示ログインに成功すると、ユーザー ID がフロントエン...
1.1 一般的なマーキング一般的なタグは開始タグと終了タグで構成されます。構文は次のとおりです: ...
現在、ほぼすべての大規模な Web サイトとアプリケーションは分散方式で展開されています。分散シナリ...
Flexbox レイアウト モジュールは、コンテナー内のスペースをより効率的に配分する方法を提供する...
IE6 で CSS スタイルの div または li の背景のタイリングや境界の破壊を解決するには、...
MySQL では、SQL ステートメント rename table を使用してテーブル名を変更できま...
iframe を使用すると、他の Web サイトのページを簡単に呼び出すことができますが、注意して使...
みなさんこんにちは。私は梁旭です。 Linux を使用しているときに、いくつかのコマンドを連結する必...
現象プロジェクトにはネストされたフレックス構造がいくつかあります。 <スタイル> /* ...
これは、IP アドレスが制限されている投票 Web サイトの不正行為の手口です。この方法は、投票 W...
目次1. 説明2. 関連する依存パッケージをダウンロードする3. 設定ファイル .eslintrc....
1. ボックスを中央に配置するいくつかの方法を記録します。 1.0、マージン幅固定、高さ中央配置。 ...
序文Element Plus を例に、コンポーネントとスタイルのオンデマンド読み込みを構成します。環...
最近、画像上に半透明の背景でテキストを表示する必要があるという要件に遭遇しました。その効果は次のよう...