Как проверить использование дискового пространства для образов и контейнеров Docker – CloudSavvy IT
При работе контейнерных приложений в изолированной среде может быть сложнее, чем обычно, отслеживать проблемы с приложениями, использующими слишком много места для хранения. К счастью, Docker предоставляет команды для управления использованием диска контейнера.
Быстрая проверка
И если вы хотите проверить, сколько места занимает Docker, вы можете использовать встроенную команду docker system df, а также команду du Linux, чтобы получить размер всего каталога.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
система докеров df sudo du -sh / var / lib / docker /
Эта команда показывает статические изображения, контейнеры, которые внесли изменения в свою файловую систему (например, файлы журнала), и тома, привязанные к контейнерам.
Однако это не совсем точно – здесь у меня работает много контейнеров, но все они хранят данные в привязках на ОС хоста, а не в томах.
Очистка образов Docker
Образы Docker отличаются от запущенных контейнеров; это файлы, которые вы загружаете из Docker Hub для запуска контейнера. Обычно они довольно большие и содержат весь необходимый код для запуска базовой ОС и вашего приложения.
Каждая версия изображения является отдельной, но хранится в слоях, поэтому несколько новых версий не будут занимать вдвое больше места для хранения. Вы можете просмотреть все изображения с изображением ls:
образ докера ls
Очистить их легко; вы, конечно, не хотите удалять образы работающих контейнеров, но удалить старые образы можно – они будут просто повторно загружены при необходимости.
Вы можете обрезать все изображения или вручную удалить одно по идентификатору:
docker image prune -a docker image rm 3a8d8f76e7f8f
Проверка использования запущенного контейнера
Контейнеры немного сложнее отследить, поскольку они могут использовать данные по-разному:
- Базовое изображение: каждый контейнер должен будет хранить свой образ, но он повторно используется в контейнерах.
- Уровень модификации: если контейнер записывает в свою файловую систему, например в файлы журнала, он будет сохранен в новом слое поверх основного изображения. Это уникально для каждого контейнера.
- Тома: к контейнерам могут быть подключены виртуальные диски, которые хранят данные непосредственно на диске вне системы хранения Docker.
- Bind Mounts: контейнеры могут дополнительно напрямую обращаться к каталогам на хосте.
Все, кроме bind mounts, будет отображаться в выводе docker system df. Если вы хотите просмотреть статистику для каждого контейнера, Docker предоставляет флаг для команды ps, чтобы указать использование:
docker ps –size
Здесь показан размер на диске, а также виртуальный размер (который включает общий базовый образ). Поскольку эти контейнеры не используют никакого хранилища за пределами их привязок, размер равен нулю байтов.
Отладка креплений (привязки и тома)
Чтобы просмотреть использование монтирования как для монтирования с прямым связыванием, так и для управляемых томов, вам необходимо получить их размер из ОС хоста. Если вы не знаете, где они находятся, вы можете запустить docker container ls, чтобы получить идентификатор контейнера, а затем запустить docker inspect, чтобы получить информацию о монтировании:
докер проверяет a1c904020044 -f ‘{{json .Mounts}}’
[{“Type”:”bind”,”Source”:”/home/daemon-data/921ff235-5075-4d64-b977-8d02cc3dacc9″,”Destination”:”/home/container”,”Mode”:””,”RW”:true,”Propagation”:”rprivate”}]
Затем вы можете проверить общий размер с помощью du -sh:
sudo du -sh / путь / к / монтировать /
Контейнеры и объемы для обрезки
Docker никогда не удаляет контейнеры или тома (если вы не запускаете контейнеры с флагом –rm), так как это может привести к потере ваших данных. Однако у вас может быть резервное копирование старых данных, которые необходимо удалить.
Как и изображения, Docker предоставляет команду сокращения для контейнеров и томов:
docker container prune docker volume очистить
Отладка вручную
Если у вас есть прямой доступ к серверу, на котором запущен Docker, вы можете открыть оболочку в контейнере:
sudo docker exec -it containerID / bin / bash
и запустите du -sh для всего, что вернет все данные, включая размер образа, данные о привязках и данные в томах.
sudo du -sh /
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)