GoogleCloudのCentOSホストでUbuntuDockerを実行しています。 Dockerは、S3へのイメージのアップロードに使用されるSpring-Bootアプリケーションを実行します。ローカルディスクには何も保存しません。 2週間ごとに、ディスク容量の問題が発生します(デバイスに空き容量がありません)。ホストマシンで以下を実行します。
[james@api /]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1.0T 58G 967G 6% /
devtmpfs 15G 0 15G 0% /dev
tmpfs 15G 0 15G 0% /dev/shm
tmpfs 15G 26M 15G 1% /run
tmpfs 15G 0 15G 0% /sys/fs/cgroup
tmpfs 3.0G 0 3.0G 0% /run/user/0
tmpfs 3.0G 0 3.0G 0% /run/user/1000
[james@api /]$ Sudo du -hs * | sort -rh | head -5
3.3G var
1.5G usr
154M boot
58M srv
34M etc
Dockerコンテナで同じことを実行しました:
[root@ea23811c1871 /]# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 1.0T 58G 966G 6% /
tmpfs 64M 0 64M 0% /dev
tmpfs 15G 0 15G 0% /sys/fs/cgroup
/dev/sda1 1.0T 58G 966G 6% /var/log
shm 64M 0 64M 0% /dev/shm
tmpfs 15G 0 15G 0% /proc/acpi
tmpfs 15G 0 15G 0% /proc/scsi
tmpfs 15G 0 15G 0% /sys/firmware
[root@ea23811c1871 /]# du -hs * | sort -rh | head -5
1.2G usr
139M var
2.7M etc
36K tmp
28K root
私の質問は、58Gが隠れている場所をどのように見つけることができるかということです。
ありがとう、ハナン
ホストマシンでlsofを実行し、削除されたファイルを表示します
lsof |grep delete
おそらく、プロセスは削除されたファイルを解放しませんでした
まず、まだこれを行っていない場合は、ディスク容量の使用状況についてモニターとアラートを設定してください。 Nagios/Icingaには、セットアップが簡単な汎用プラグインがいくつかあります。ディスクがいっぱいになったときに警告する単純なスクリプトでさえ、ここで役立ちます。
次に、dockerコマンドを使用してコンテナが占有しているスペースを確認する必要があります(docker ps -s
、docker system df
、またはdocker inspect
を調べてください。これらを実行する前にmanページを注意深く読んでください)。また、コンテナー、チェックポイント(使用されている場合)、およびログファイルの構成ファイルユーザーが占有するスペースも考慮する必要があります。一般に、/var/lib/docker/
をざっと見て、コンテナ内のどこにどのファイルが存在するかを把握します。