LINUX.ORG.RU

Docker занимает все место диска

 


0

1
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           796M  8.7M  787M   2% /run
/dev/sda1        59G   50G  6.7G  89% /
tmpfs           3.9G  1.1M  3.9G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda15      124M   12M  113M  10% /boot/efi
tmpfs           796M   28K  795M   1% /run/user/0
overlay          59G   50G  6.7G  89% /var/lib/docker/overlay2/92bbb502bdb4b48d0a1ce92d9a9c5a3c907d265e0319cb57e153d696e180e3ff/merged

Докер начинает разрастаться независимо от размера диска и занимает все место. Что можно сделать ?



Последнее исправление: hobbit (всего исправлений: 1)
  1. Не использовать докер, особенно, если у тебя ограничены ресурсы, докер это игрушка для богатых
  2. docker system prune -a --volumes (но сначала прочти интрукцию что оно делает)
  3. docker system df -v
masa ★★★
()
Последнее исправление: masa (всего исправлений: 2)
Ответ на: комментарий от guest11

Если ты собираешь образы - сделай prune.

Если в контейнере много сообщений от запущенных приложений - делай ротацию логов контейнера.

Если у тебя большой опыт - значит ты должен знать, что нужно читать документацию, в данном случае по docker.

anonymous
()
Ответ на: комментарий от Byers

Настроен Nginx в докер и 11 сайтов

Если без докера то нужно неделю настраивать nginx и все сайты повторно загружать

часто перезжаю с сервера на сервер

нужно чтоб один раз сохранить и меньше настраивать ,

guest11
() автор топика
Ответ на: комментарий от guest11

А ты образы собираешь из Dockerfile или только запускаешь?

Если нет - то зачем вообще такой опытный в Linux человек, коим ты себя считаешь, бездумно запускает команды?

Если ты только через docker compose запускаешь контейнеры, где в docker-compose.yaml нет вызова build для контейнера то выше указанная команда бессмысленна.

Что показывает

docker system df
anonymous
()
Ответ на: комментарий от Byers

Обзор от ИИ Да, Docker — это отличный способ хостинга сайтов, обеспечивающий переносимость, изоляцию и стабильность. В контейнеры упаковывается всё: код сайта, библиотеки, БД и веб-сервер (Nginx/Apache). Это устраняет проблемы с совместимостью, позволяя легко развертывать приложения на VPS, выделенных серверах или облачных платформах. Amazon Web Services (AWS) Amazon Web Services (AWS) +4 Преимущества хостинга в Docker: Изоляция: Каждый сайт работает в своем контейнере, не влияя на другие. Переносимость: Сайт, работающий на локальном компьютере, точно так же заработает на сервере. Легкость масштабирования: Возможность быстро запускать новые экземпляры приложения. Удобство: Использование Docker Compose позволяет запускать сложные многоконтейнерные приложения одной командой.

ии опять не совсем точный ?

guest11
() автор топика
Ответ на: комментарий от guest11

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

guest11
() автор топика
Ответ на: комментарий от guest11

Можно, только логи нужно куда-то собирать и делать ротацию. В daemon.json настрой параметры.

А сбор логов - через драйвер в графану, например.

С LXC у тебя будет ещё больше места использоваться. В LXC будет почти вся ОС, без ядра только.

anonymous
()
Ответ на: комментарий от guest11

Хостить сайты в Docker месяцами можно и нужно — это стандарт индустрии. Рост «веса» (дискового пространства) — это не баг, а результат отсутствия настройки обслуживания.

guest11
() автор топика
Ответ на: комментарий от guest11

Надо понимать, что ИИ учится на хайповых ресурсах, docker распиарили так, что аж светится. Что он тебе ещё может сказать? Да, docker рабочая тема, но у каждой технологии есть оптимальная сфера применения. В твоей задаче технологии docker не нужны, а LXC подходит идеально. Но ни на чём не настаиваю, высказываю только личное мнение - я бы использовал LXC.

Byers
()
Ответ на: комментарий от guest11

Зачем ты сюда это пишешь? Можно, но настрой нормально сбор логов.

И свои приложения, чтобы в accept.log и error.log не писались тонны логов, если используешь nodejs, чтобы он писал ровно то, что нужно, а не кучу отладочных сообщений, аналогично с go и python.

anonymous
()
Ответ на: комментарий от Byers

Сравни сколько будет весть nginx:alpine и LXC контейнер с Ubuntu - разницы будет раз в 10-20 больше, а дальше всё будет прирастать логами от запущенных сервисов автора.

Т.е. условно nginx:alpine-slim - 12 mb.

lxc Ubuntu 22.04 - 130 mb.

И это в LXC ещё нет nginx и прочих его зависимостей.

anonymous
()

Чудес не бывает. В докере место занимают две вещи:

  1. Образы (смотрим через docker image ls, удаляем при помощи docker image rm, при этом сам контейнер должен быть остановлен и удалён).
  2. Вольюмы. Смотрим через docker volume ls, удаляем через docker volume rm.

По п.2: вольюмы (тома) - это место, в котором контейнеры сохраняют постоянные данные. Поэтому надо чётко понимать, что делаешь, когда удаляешь, чтобы не удалить нужные данные.

Само по себе ничего не растёт и места не занимает. Если используется btrfs, то возможно потребуются дополнительные движения, чтобы освободить занятое пространство.

Chiffchaff
()

Либо у тебя мертвые контейнеры после run без -rm либо ты пишешь мимо подключенных volume для персистентных данных.

anonymous
()

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

vbr ★★★★★
()

Докер начинает разрастаться независимо от размера диска и занимает все место. Что можно сделать ?

Ну, докер просто запускает обычный процесс в заданном окружении. Файловое окружение в overlayfs, но это тоже не особо хитрая штука, у тебя там в верхнем слое изменяются файлы как от обычного запущенного процесса, на обычном линуксе, под обычной фс.

Т.е. как и на обычной системе ищешь что занимает место и затем решаешь, что с этим делать. Чаще забывают про логи, когда контейнеров мало, то проблем найти растущие файлы/директории быть не должно.

altwazar ★★★★★
()