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