Я вижу, что Docker занимает 12 ГБ моей файловой системы:
2.7G /var/lib/docker/vfs/dir
2.7G /var/lib/docker/vfs
2.8G /var/lib/docker/devicemapper/mnt
6.3G /var/lib/docker/devicemapper/devicemapper
9.1G /var/lib/docker/devicemapper
12G /var/lib/docker
Но как мне узнать, как это распределяется по контейнерам?
Я попытался присоединиться к контейнерам, запустив (новая команда v1.3)
docker exec -it <container_name> bash
и затем запустив 'df -h', чтобы проанализировать использование диска. Кажется, что он работает, но не с контейнерами, которые используют «volume-from».
Например, я использую контейнер данных только для MongoDB, который называется «Монго-данные».
Когда я запускаю docker run -it --volumes-from mongo-data busybox
, а затем df -h
внутри контейнера, он говорит, что файловая система, смонтированная в /data/db
(мой контейнер только для данных «mongo-data»), использует 11.3G, но когда я это делаю du -h /data/db
, он говорит, что он использует только 2.1G.
Итак, как мне проанализировать использование диска контейнера / тома? Или, в моем случае, как узнать размер контейнера «mongo-data»?
источник
docker-squash
утилиту Джейсона Уайлдера . Получите это от GitHub здесь: github.com/jwilder/docker-squashОтветы:
Чтобы увидеть размер файла ваших контейнеров, вы можете использовать
--size
аргументdocker ps
:источник
docker ps -s
не учитываются журналы, хранящиеся в / var / lib / docker /.27.2MB (virtual 173MB)
какова разница между ними?После 1.13.0 Docker включает новую команду,
docker system df
чтобы показать использование диска Docker .Чтобы показать более подробную информацию об использовании пространства:
источник
docker system df --verbose > docker.stats-2019-07-18.log
Отправив это как ответ, потому что мои комментарии выше были скрыты:
Укажите размер контейнера:
Указать размеры объемов контейнера:
Редактировать: Список всех размеров и объемов работающих контейнеров:
ПРИМЕЧАНИЕ. Измените «devicemapper» в соответствии с вашей файловой системой Docker (например, «aufs»)
источник
/var/lib/docker/devicemapper: No such file or directory
. Любая идея, где устройство устройства хранится на Mac?du
команду внутри вашей виртуальной машины boot2docker. Команда также может не работать, если вы используетеaufs
вместо устройства отображения.Часть тома больше не работает, поэтому, если кто-то заинтересован, я просто немного изменяю приведенный выше скрипт:
источник
(этот ответ бесполезен, но оставим его здесь, так как некоторые комментарии могут быть)
docker images
покажет «виртуальный размер», то есть сколько всего, включая все нижние уровни. Так что некоторый двойной счет, если у вас есть контейнеры, которые используют один и тот же базовый образ.документация
источник
Я использую,
docker stats $(docker ps --format={{.Names}}) --no-stream
чтобы получить:источник
Ты можешь использовать
чтобы увидеть, как размер изображения распределяется между его различными подкомпонентами.
источник
Имейте в виду, что это
docker ps --size
может быть дорогой командой, которая может занять больше нескольких минут. То же самое относится к запросам API списка контейнеров сsize=1
. Лучше не запускать его слишком часто.Взгляните на скомпилированные нами альтернативы , включая
du -hs
опцию для каталога постоянных томов docker.источник
Улучшение ответа Максима:
docker ps --size
Вы увидите что-то вроде этого:
При запуске контейнера образ, из которого запускается контейнер, монтируется только для чтения (виртуальный) .
Кроме того, монтируется записываемый слой, в который записываются любые изменения, сделанные в контейнере.
Таким образом, виртуальный размер (183 МБ в примере) используется только один раз, независимо от того, сколько контейнеров запущено из одного образа - я могу запустить 1 контейнер или тысячу; дополнительное дисковое пространство не используется .
«Размер» (в примере 2B) уникален для каждого контейнера, поэтому общее пространство, используемое на диске:
183MB + 5B + 2B
Имейте в виду, что указанный размер не включает все дисковое пространство, используемое для контейнера.
Вещи, которые не включены в настоящее время;
- volume
- swapping
- checkpoints
- дисковое пространство, используемое для log-файлов, сгенерированных контейнером
https://github.com/docker/docker.github.io/issues/1520#issuecomment-305179362
источник