1. Введение
В этой статье мы узнаем, как проверить доступное дисковое пространство при использовании OverlayFS.
Сначала разберемся, как OverlayFS работает вместе с Docker.
Затем мы рассмотрим некоторые команды, которые предоставляют информацию об использовании диска.
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.
см. также:
- 🐳 Как найти физический интерфейс, подключенный к поду
- 🐳 Размер образа Docker: как проверить и уменьшить
- 🐳 Сравнение команд Docker Exec и Docker Attach
- 🐳 Windows – бесшовная интеграция и управление
- 🐳 Изменение даты внутри контейнера Docker