У меня есть докер Ubuntu, работающий на хосте CentOS в Google Cloud. Докер запускает приложение с весенней загрузкой, используемое для загрузки изображений в S3. На локальный диск ничего не сохраняю. Примерно каждые 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
Я запускал то же самое в контейнере докеров:
[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 ??
Спасибо, Hanan
В хост-компьютере запустите lsof и просмотрите удаленные файлы
lsof |grep delete
Возможно, процесс не освободил удаленный файл
Прежде всего, если это еще не сделано, настройте мониторы и оповещения об использовании дискового пространства. У Nagios / Icinga есть несколько общих плагинов, которые легко настроить, или даже простой скрипт, который предупреждает вас, когда диск заполняется, здесь может быть полезен.
Затем вы должны проверить, сколько места занимает ваш контейнер, с помощью команд докеров (посмотрите docker ps -s
, docker system df
или docker inspect
) - внимательно прочтите справочные страницы перед их запуском). Также необходимо учитывать пространства, занимаемые пользователем файлов конфигурации для контейнеров, контрольной точки (если используется) и файлов журнала. Обычно исследуйте / var / lib / docker /
, чтобы получить представление о том, какие файлы находятся в контейнере.