php エディターの Yuzai が、docker の 2 つのコマンド、`docker system df` と `/system/df` (docker api エンドポイント) を紹介します。どちらのコマンドも docker システムのリソース使用量を表示するために使用されますが、使用方法と結果の表示方法が若干異なります。 `docker system df` は、ターミナルで直接実行できる docker コマンドで、docker システム内のさまざまなリソース (イメージ、コンテナ、データ ボリュームなどを含む) の使用状況と、全体的なリソースの使用状況が表示されます。 。また、`/system/df` は Docker API エンドポイントであり、API を呼び出して関連情報を取得する必要があります。返される結果は「docker system df」に似ていますが、Docker システムのリソース使用量をプログラムで取得する場合により適しています。
Dockerホストから総ディスク使用量をGB単位で取得するプログラムをGoで書いています。このために、go lib の func DiskUsage()
を使用します:
コードを表示します。関数は Docker API エンドポイント /system/df
:
ただし、コマンド docker system df
を使用して GB を計算するこのライブラリを使用すると、奇妙な動作に気づきました:
docker システム df
出力:
リーリー
ご覧のとおり、2 つの出力には違いがあります。 /system/df
エンドポイントからデータを取得する計算に何か問題があるかどうかを理解する必要があります。 ###ありがとう:)###
Go アプリケーション:
$ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 223 4 21.02GB 20.7GB (98%) Containers 6 0 0B 0B Local Volumes 13 1 536.4MB 340.4MB (63%) Build Cache 954 0 13.51GB 13.51GBソリューション
https://github.com/docker/cli/blob/v24.0.5/cli/command/system/df.go
出力形式: の動作を正確に再現できるはずです:
リーリー
リーリー
diskUsage.LayersSize
を直接提供するため、自分で計算する必要はありません
ビルド キャッシュの場合、共有プロジェクトを除外する必要があります (
(例: units.HumanSize(float64(diskUsage.LayersSize))
を使用することを強くお勧めします。 )。これで単位変換の悪夢から解放されます。
以上が`docker system df` および `/system/df` (docker API エンドポイント)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。