Оставшееся дисковое пространство на накладной файловой системе Docker.

Вопрос или проблема

Я новичок в Linux и установил armbian на SD-карту, и все работает отлично.

SD-карта имеет объем 64 ГБ.

Затем я установил docker.io, docker-compose и portainer, больше ничего.

Когда я проверяю диск с помощью lsblk:

    # lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0  59.5G  0 disk
├─mmcblk0p1  179:1    0   512M  0 part /boot
└─mmcblk0p2  179:2    0  58.4G  0 part /
mmcblk1      179:32   0  14.6G  0 disk
mmcblk1boot0 179:64   0     4M  1 disk
mmcblk1boot1 179:96   0     4M  1 disk
zram0        254:0    0    50M  0 disk /var/log
zram1        254:1    0 929.4M  0 disk [SWAP]

Затем с df:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            796M     0  796M   0% /dev
tmpfs           186M  8.0M  178M   5% /run
/dev/mmcblk0p2   58G  2.2G   55G   4% /
tmpfs           930M     0  930M   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           930M     0  930M   0% /tmp
/dev/mmcblk0p1  511M   59M  453M  12% /boot
/dev/zram0       49M  7.0M   38M  16% /var/log
overlay          58G  2.2G   55G   4% /var/lib/docker/overlay2/b28da5a318945ac7ae1d17d26a635edb9a662c6116dea37fb4f6c13e1c76d7d2/merged
tmpfs           186M     0  186M   0% /run/user/0

Почему остаются два объема по 55 ГБ (/dev/mmcblk0p2 и overlay filesystem)?

Это значит, что я могу использовать только 55 ГБ на папке /var/lib/docker/overlay2/.../merged?

/dev/mmcblk0p2 — это корневая файловая система, где установлена ваша дистрибутив Linux.

Где 2.2 ГБ используется, а 55 ГБ доступно.

Директория /var/lib/docker/overlay2 — это место, где Docker хранит свои образы и контейнеры.

Docker использует файловую систему copy-on-write для хранения, которая создает новый слой поверх существующей файловой системы.

Это файловая система overlay Docker, и расположение вы видите с помощью df -h

overlay          58G  2.2G   55G   4% /var/lib/docker/overlay2/b28da5a318945ac7ae1d17d26a635edb9a662c6116dea37fb4f6c13e1c76d7d2/merged

У вас есть 55 ГБ доступного места на ваше SD-карте для хранения файлов, установки пакетов и использования Docker и т.д.

Вы можете изменить этот путь на другую директорию, хранилище или диск, если захотите.

Драйверы хранения Docker

Используйте драйвер хранения OverlayFS

Устаревший драйвер overlay использовался для ядер, которые не поддерживали функцию “multiple-lowerdir”, необходимую для overlay2. Все поддерживаемые в настоящее время дистрибутивы Linux теперь предоставляют поддержку этого, поэтому он устарел.

Overlay в Docker

Docker использует файловую систему overlay для создания образов, а также для размещения слоя контейнера поверх слоев образа. Когда образ загружается, его слои находятся внутри папки /var/lib/docker/overlay2.

Объединенные папки являются файловыми системами overlay, сами они не занимают дисковое пространство, вместо этого df сообщает об использовании диска подлежащей файловой системой, в вашем случае это /

/var/lib/docker/overlay2/*/merged занимаем слишком много места

Ответ или решение

Вопрос о свободном месте на диске в файловой системе поверхностного накрытия (overlay filesystem) в Docker привлекает внимание многих, кто только начинает работать с этой платформой на операционных системах на базе Linux. Ваш случай с Armbian на SD-карте размером 64 ГБ и установкой Docker, docker-compose и Portainer является отличным примером для разъяснения данной темы.

Теория: Файловая система overlay в Docker

Docker использует концепцию "копирования при записи" (copy-on-write) для управления слоями образов и контейнеров. Это позволяет создавать новые слои поверх существующих файловых систем, минимизируя затраты ресурсов и времени на развертывание приложений. Основной путь хранения этих слоев и данных Docker – /var/lib/docker/overlay2.

Файловая система overlay или overlay2 – это не просто директория, а многоуровневая система, которая может содержать множество слоев. Каждый слой – это измененная версия предыдущего, так что если контейнер выполняет изменения, они сохраняются в новом слое, не затрагивая предыдущие.

Пример: Ваш текущий случай

Ваши данные показывают, что /dev/mmcblk0p2 занимает 4% из 58G, оставляя 55G свободными. Эти 55 ГБ доступны для использования системой в целом, включая Docker.

Строка из df -h:

overlay          58G  2.2G   55G   4% /var/lib/docker/overlay2/b28da5a318945ac7ae1d17d26a635edb9a662c6116dea37fb4f6c13e1c76d7d2/merged

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

Применение: Что это означает для вас

  1. Общее дисковое пространство: Это означает, что 55 ГБ доступны для всей операционной системы, а не только для Docker. Ваша корневая файловая система и overlay filesystem Docker используют общее дисковое пространство /dev/mmcblk0p2.

  2. Изменение места хранения Docker: Если необходимо, вы можете изменить стандартное местоположение хранения Docker. Это особенно полезно, если требуется разграничить данные контейнеров и систему, используя другой диск или раздел. Это можно сделать, изменив конфигурацию Docker в файле daemon.json.

  3. Оптимальное использование места: Поскольку Docker использует метод "копирования при записи", экономичное управление образами и контейнерами позволяет оптимизировать использование дискового пространства. Например, удаление ненужных изображений и контейнеров освободит пространство.

  4. Мониторинг и управление ресурсами: Понимание того, как Docker управляет и расходует дисковое пространство, позволяет более эффективно следить за ресурсами и производительностью вашей системы. Команды такие как docker system prune могут помочь освободить дисковое пространство, удаляя неиспользуемые объекты.

Надеюсь, это объяснение помогло прояснить, как распределяется использование дискового пространства в вашей системе с Docker. Работая с контейнерами, важно понимать, как они взаимодействуют с файловыми системами, чтобы максимально эффективно использовать ресурсы.

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

Капча загружается...