🐳 Как проверить оставшееся дисковое пространство в файловой системе Docker Overlay

by itisgood

1. Введение

В этой статье мы узнаем, как проверить доступное дисковое пространство при использовании OverlayFS.

Сначала разберемся, как OverlayFS работает вместе с Docker.

Затем мы рассмотрим некоторые команды, которые предоставляют информацию об использовании диска.

🗄️ Введение в OverlayFS

2. Понимание OverlayFS

Контейнеры позволяют нескольким изолированным системам работать одновременно поверх одной операционной системы.

Для этого используется оверлейная файловая система, называемая OverlayFS.

OverlayFS состоит из слоев: нижний слой доступен только для чтения, а верхний – для чтения и записи.

Эти слои также имеют каталоги, где OverlayFS обозначает нижний каталог как lowerdir, а верхний – как upperdir.

Наконец, объединенный каталог консолидирует содержимое обоих базовых каталогов в единую и согласованную версию.

Ниже мы видим, как Docker создает свои слои с образом и контейнером.

Слой образа (lowerdir) – это базовый слой, состоящий из спецификаций, включенных в Dockerfile.

Он неизменяем и может быть больше одного, в зависимости от сложности образа. Соответственно, у нас может быть несколько lowerdir.

Тем временем слой контейнера (upperdir) записывает все обновления файловой системы, выпущенные контейнером, чтобы сохранить целостность слоев образа.

Короче говоря, здесь хранятся все изменения, такие как новые или измененные файлы и т. д.

Наконец, есть точка монтирования контейнера в объединенном каталоге.

Этот каталог обеспечивает единое представление исходных файлов из нижних каталогов наряду с любыми изменениями или дополнениями в верхних каталогах.

В целом можно понять, что объединенный каталог образует корень дерева файловой системы контейнера.

Как показано на рисунке, при чтении файлов приоритет имеет upperdir.

Это означает, что если файл существует в обоих слоях, то OverlayFS отдаст предпочтение загрузке файла из верхнего каталога.

Кроме того, файл будет загружаться непосредственно из источника, если он принадлежит только слою изображения или слою контейнера.

Помните, что удаление файла из слоя изображений создает файл с белым пятном в верхнем каталоге.

Поскольку lowerdir доступен только для чтения, удалить файл невозможно.

Однако файл с белым пятном не позволяет ему стать доступным.

3. Проверка дискового пространства на OverlayFS

Docker предоставляет встроенные команды для анализа использования диска.

Команда docker system df дает обзор использования диска Docker:

$ docker system df

Эта команда отображает информацию о количестве дискового пространства, используемого образами, контейнерами и другими устройствами:

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          17        15        1.196GB   570.7MB (47%)
Containers      31        0         53.58MB   53.58MB (100%)
Local Volumes   8         2         1.653GB   1.235GB (74%)
Build Cache     67        0         25.99kB   25.99kB

Столбец RECLAIMABLE указывает на объем дискового пространства, который можно потенциально освободить, удалив неиспользуемые объекты Docker (например, неиспользуемые образы или остановленные контейнеры).

Еще одна команда, которую мы можем использовать, – это команда df, стандартная утилита Unix/Linux:

$ df -h

Флаг -h делает вывод человекочитаемым, отображая размеры в МБ или ГБ вместо блоков:

Filesystem      Size  Used Avail Use% Mounted on
tmpfs           391M  1,8M  389M   1% /run
/dev/vda3        24G   20G  3,1G  87% /
tmpfs           2,0G     0  2,0G   0% /dev/shm
tmpfs           5,0M  4,0K  5,0M   1% /run/lock
/dev/vda2       512M  6,1M  506M   2% /boot/efi
tmpfs           391M  116K  391M   1% /run/user/1000
overlay          24G   20G  3,1G  87% /var/lib/docker/overlay2/c49caf4c21324d27a5be076a5b0131f7cfb9b5200c0905190fa9fdb594013e3a/merged
overlay          24G   20G  3,1G  87% /var/lib/docker/overlay2/e446e8087dbd8270af8fc7f291003fa7744d436cb7f7442d32305928739d51b6/merged

В столбце “Filesystem” указаны устройства или разделы, на которых находится ФС, а также тип системы. tmpfs – временные файловые системы, обычно используемые для хранения временных файлов в памяти (RAM). /dev/vda – это разделы физического диска.

Наконец, overlay обозначает контроллер хранения OverlayFS в Docker.

В данном случае у нас запущено два контейнера, поэтому показано одинаковое количество объединенных каталогов.

Что касается использования диска, то общий объем составляет 24 Гб, из которых 20 Гб используется, а 3,1 Гб доступно для хранения файлов и работы Docker.

4. Заключение

В этой статье мы рассмотрели механику OverlayFS и узнали, как проверить доступное дисковое пространство.

При использовании Docker с OverlayFS образы и контейнеры хранятся в слоях.

Используя такие инструменты, как df и собственные системные команды Docker, мы можем контролировать дисковое пространство на файловой системе OverlayFS.

см. также:

 

You may also like

Leave a Comment