この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 8653|答える: 6

Dockerのログはディスクやデータ移行を埋め尽くします

[リンクをコピー]
掲載地 2022/02/07 10:21:43 | | | |
同僚はシステムがテスト環境にログインできないと判断し、監視を確認したところサービスポートが開いていることを確認し、サーバーにログインしてハードディスクの使用状況を確認したところ、あるディスクにマウントされたディレクトリが満杯であることがわかりました。以下の図に示されています。



ディスクは100%Dockerアプリケーションで使用されるディスクであり、ログファイルを書き込めないため、モジュールが外部にサービスを提供できないのではないかと最初は疑われています。

CentOSは各フォルダのサイズをカウントし、大きなファイルを探します
https://www.itsvse.com/thread-9542-1-1.html
大きなファイルを探し、最終的に/var/lib/docker/containers/サブディレクトリで見つけてくださいあるファイルjson.logが30Gを占めています

コンテナログの洗浄(症状治療)

容器をすぐに正常に提供できるようにするために。 一時的な解決策として、そのようなファイルを素早くクリーンアップし、ハードディスクの空き容量を解放します。スクリプトは以下の通りです:

もしDockerコンテナが稼働している場合、rm -rfでログを削除しても、df -hでディスク容量が解放されないことがわかります。 その理由は、LinuxやUnixシステムでは、rm -rfやファイルマネージャーでファイルを削除すると、そのファイルがファイルシステムのディレクトリ構造からリンク解除されるからです。 ファイルが開かれていて(プロセスが使われている場合)、プロセスはファイルを読み取ることができ、ディスク容量は常に占有されます。 正しいポーズはcat /dev/null > *-json.logで、もちろんrm -rfでdockerを削除した後に再起動することも可能です。

所見:空いているディスクのディレクトリに新しいスクリプトを作成してください。そうでなければ通常はスクリプトを作成できません


Dockerコンテナのログサイズ設定(根本原因)

コンテナサービスの最大ログサイズを設定し、コンテナ開始時にコンテナのログサイズを設定するパラメータを追加します。例えば:

最大サイズ=500m、つまりコンテナの丸太サイズの上限は500Mであることを意味します。
max-file=3であり、コンテナにはid+.json、id+1.json、id+2.jsonの3つのログがあります。


Dockerが新しいディスクに移行しました

Docker関連データはシステムディスク上にあり、システムディスクのサイズはわずか50G、データディスクは100Gです。既存のDockerデータをデータディスクに移すにはどうすればよいのでしょうか?

CentOSのシステムyumメソッドでインストールされたdockerの場合、デフォルトのインストールディレクトリは /var/lib/docker であるべきです。

Docker バージョン < v17.05.0

dockerdはパラメータグラフを通じて画像とコンテナの保存パスを指定できるため、例えば –graph=/var/lib/docker のように設定ファイルを修正すれば起動パラメータが指定されます。

Dockerの設定ファイルはほとんどのバックグラウンドプロセスパラメータを設定できますが、各OSのストレージ位置は一貫していません。Ubuntuでは/etc/default/docker、CentOSでは/etc/sysconfig/dockerです。

Docker version >= v17.05.0

Dockerはこのリリースで公式にグラフ機能を非推奨したため、Dockerのバージョン>= v17.05.0がインストールされている場合、/etc/default/docker設定ファイルでグラフパラメータを指定することでDockerのデフォルトインストール(ストレージ)ディレクトリを変更することはできません。

新しいDockerがインストール(ストレージ)ディレクトリを変更するという他の方法もあります。例えば、データルートパラメータの値を指定するために(新しい)/etc/docker/daemon.jsonを修正することです。

Docker daemon directory configuration:ハイパーリンクのログインが見えます。

移行準備:すべてのコンテナアプリケーションを停止し、dockerサービスも停止します(systemctl stop docker)。


Dockerはコンテナの再起動設定や一括停止コンテナを調べます
https://www.itsvse.com/thread-10130-1-1.html
/home/softwareに次のコマンドで新しいディレクトリを作成します:

/var/lib/docker ディレクトリを /home/software/docker ディレクトリに移行してください(コピーし、問題がなければ /var/lib/docker ディレクトリファイルを削除することが推奨されます)。コマンドは以下の通りです:

コピーするとき-aパラメータを追加すると、一部のコンテナが正しく動作しなくなります!!!!!

以下のコマンドで、現在のディレクトリ内のすべてのソフト接続とファイルポイントを表示できます:


以下のコマンドで/etc/docker/daemon.jsonファイルを修正します:



保存し、次のコマンドでdockerサービスを起動します:

コンテナを起動し、テストはすべて正常に動作し、最後に、/var/lib/dockerフォルダを削除してください



(終わり)




先の:Linuxシステムの起動時間とシャットダウン時間を確認してください
次に:Spring Cloud Gatewayに組み込まれたフィルター工場
掲載地 2022/02/13 16:36:29 |
学ぶことを学びましょう。。。。。
 地主| 掲載地 2022/02/24 9:38:26 |
Docker none画像の削除方法
https://www.itsvse.com/thread-10112-1-1.html
 地主| 掲載地 2022/02/24 13:21:48 |
リスト
形容
コンテナIDと名前コンテナのIDと名前
CPU%とMEM %コンテナがホストCPUとメモリで使用している割合
メモリの使用量/制限コンテナが使用している総メモリ量と、使用許可されている総メモリ量
NET I/Oコンテナがネットワークインターフェースを通じて送受信するデータの量
ブロックI/Oコンテナがホスト上のブロックデバイスから読み書きするデータの量
PIDsコンテナによって生成されるプロセスまたはスレッドの数


 地主| 掲載地 2022/03/25 14:45:13 |
対応するコンテナアプリケーションは、/var/lib/docker/containers/xxxx/config.v2.jsonファイルのName値をクエリすることで見つけることができます。



掲載地 2022/12/07 14:17:31 |
Dockerのログはディスクやデータ移行を埋め尽くします
 地主| 掲載地 2023/04/17 9:59:49 |
Dockerは以下のコマンドでコンテナのログを個別に空にします:

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com