Как проверить использование дискового пространства для образов и контейнеров Docker — CloudSavvy IT

При работе контейнерных приложений в изолированной среде может быть сложнее, чем обычно, отслеживать проблемы с приложениями, использующими слишком много места для хранения. К счастью, Docker предоставляет команды для управления использованием диска контейнера.

Быстрая проверка

И если вы хотите проверить, сколько места занимает Docker, вы можете использовать встроенную команду docker system df, а также команду du Linux, чтобы получить размер всего каталога.

система докеров 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 /

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *