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を分割・圧縮し、リンクでインポートする手順
多くの場合、bash スクリプト内またはスクリプト自体内で直接 sudo を使用してコマンドを実行す...
フレーム ウィンドウの関連付けを実現するには、次に示すように、ハイパーリンクの「ターゲット」ウィンド...
HTMLでは、中国語のフレーズ「學好好學」は「學好好學」と表現できます。プロジェクトでは、SMSアラ...
目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...
独自のデモを作成するときに、display:flex を使用して垂直方向の中央揃えを実現したいと思い...
質問CSS 固定配置の position:fixed は非常に使いやすいです。ブラウザのビューポート...
1. システム構成1. sudoパスワードをオフにするsudo コマンドを使用するたびにパスワード...
最近、開発プロセス中に、プロジェクト開発環境に接続されている MySQL データベースは Aliba...
目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...
目次1. 環境の紹介2. MySQL-8.0.19をインストールする3. MySQLを設定する1. ...
<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...
最近確認された5件のデータを照会するビジネスがあります。 `id`、`title` を選択 `th_...
PS: ここではPHPStudy2016を使用しています1. 変更中にMySQLを停止する2. my...
この記事では、シームレスなカルーセル効果を実現するためのVueの具体的なコードを参考までに紹介します...
目次コンポーネントの分解左パネル右パネル入力パラメータの分解小道具スロット具体的な実装ドラッグする方...