Как очистить докер overlay2

Как очистить докер overlay2

У меня есть несколько контейнеров docker, запущенных на машине linux, папка /docker/overlay2 очень быстро растет на диске. Из-за этого мы не можем загружать новые образы

Когда я проверяю содержимое overlay2, я обнаруживаю, что он содержит очень старые слои (август 2019 г.)

Я попробовал следующую команду для очистки тома docker ls -qf dangling=true | xargs -r docker volume rm docker rm -v $(sudo docker ps -a -q -f status=exited) docker system prune

Но восстановленный 0B

Также провереноhttps://stackoverflow.com/questions/46672001/безопасно ли это-чистить-docker-overlay2

https://docs.docker.com/config/pruning/

https://success.docker.com/article/error-message-no-space-left-on-device-in-default-machine

Как лучше всего это чистить?


логи докера

Starting Oracle Net Listener.

Запуск экземпляра Oracle Database 11g Express Edition.

Ожидание запуска БД

SQL*Plus: выпуск 11.2.0.2.0 Производство во вторник 14 июля 05:04:23 2020 г.

Copyright (c) 1982, 2011, Oracle. Все права защищены.

Подключено к: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64-битная производственная версия

SQL> Отключено от Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64-битная производственная БД запущена /opt/ion/platform/daemon/DM_DOCKER / Запущен демон из /opt/ion/platform/daemon/DM_DOCKER/mkvd118p1.lx Ожидание порта 13000 bash: connect: Сеть недоступна bash: /dev/tcp/localhost/13000: Сеть недоступна Демон запущен на порту 13000 / Выполнение: /startup/ansible_container_startup.sh Выполнение: /startup/cups_startup.sh Выполнение: /startup/samba_startup.sh Выполнение: /startup/start_check_mk_agent.sh

докер дифф Ошибка ответа от демона: mkdir /docker/overlay2/f033daa6d065ff85484b54fcd9a7786f839917d180129ea8fed0f627ad776095-init/merged: на устройстве не осталось места

докер пс -а

докер том ls

образы докера

решение1

Типичным ответом для большинства людей, когда overlay2 слишком большой, является запуск очистки, обрезка остановленных контейнеров и изображений, которые были не помечены (заменены более новым тегом). Это делается с помощью , docker pruneи есть другие параметры этой команды, чтобы удалить больше данных. Для получения более подробной информации об очистке этой папки в целом см. "Безопасно ли очищать docker/overlay2/".

Если бы проблема была /var/lib/docker/containersв увеличении размера папки, я бы подозревал, что логи записываются в stdout/stderr, и естьразличные способы очистки и предотвращения избыточного ведения журналов в будущем.

Однако в этой проблеме, если папка overlay2 быстро увеличивается в размере при запуске контейнера, этот контейнер, скорее всего, записывает в файловую систему чтения/записи, связанную с этим контейнером. Каждое изменение файла запускает копирование при записи на определенный слой контейнера. Вы можете диагностировать, какие файлы создаются или изменяются, по docker container diffопределенному идентификатору контейнера. В вашей ситуации, похоже, это происходит достаточно быстро, чтобы заполнить ваш диск, поэтому на вашем компьютере может не хватить емкости для отладки или запуска этого контейнера, поэтому вам, возможно, придется отлаживать его на компьютере с большей емкостью.

решение2

Вы можете использовать его docker image prune -aдля удаления бесполезных изображений.

Связанный контент