Вопрос или проблема
Я пытался удалить docker и не смог, поскольку не смог удалить эту директорию /var/lib/docker
, и у меня возникает следующая ошибка:
(base) [xxx@xxx ~]$ sudo rm -rf /var/lib/docker/
rm: невозможно удалить ‘/var/lib/docker/containers/ca556f26e3680b5826300d72f83bfb507d4b0bfc399f22358baa46721e4c9366/shm’: Устройство или ресурс заняты
rm: невозможно удалить ‘/var/lib/docker/overlay2/8d3fdb603781fc29fd02c49be5cf67be49b578a3bc92cc010ab308a037499e8b/merged’: Устройство или ресурс заняты
Я следовал этому ответу, поскольку у него была очень похожая проблема на мою. Но если я проверяю с помощью команд lsof
или fuser
, я не получаю никакого вывода:
(base) [xxx@xxx ~]$ sudo lsof +D /var/lib/docker/
(base) [xxx@xxx ~]$ sudo /sbin/fuser /var/lib/docker/
Команда отмонтирования тоже не сработала:
(base) [xxx@xxx ~]$ sudo umount /var/lib/docker/containers/ca556f26e3680b5826300d72f83bfb507d4b0bfc399f22358baa46721e4c9366/shm
umount: /var/lib/docker/containers/ca556f26e3680b5826300d72f83bfb507d4b0bfc399f22358baa46721e4c9366/shm: не смонтировано
Тем не менее, если я проверяю с помощью параметра `-m`, чтобы найти ресурсы, используемые в этой файловой системе, я получаю список из десятков процессов:
(base) [xxx@xxx ~]$ sudo /sbin/fuser -m /var/lib/docker/
/var/lib/docker: 1rce 2rc 3rc 5rc 8rc 9rc 10rc 11rc 12rc 13rc 14rc 16rc 17rc 18rc 19rc 21rc 22rc 23rc 24rc 26rc 27rc 28rc 29rc 31rc 32rc 33rc 34rc 36rc 37rc 38rc 39rc 41rc 42rc 43rc 44rc 46rc 47rc 48rc 49rc 51rc 52rc 53rc 54rc 56rc 57rc 58rc 59rc 61rc 62rc 63rc 64rc 66rc 67rc 68rc 69rc 71rc 72rc 73rc 74rc 76rc 77rc 78rc 79rc 80rc 81rc 82rc 83rc 84rc 86rc 87rc 88rc 89rc 91rc 92rc 93rc 94rc 96rc 97rc 98rc 99rc 101rc 103rc 104rc 105rc 107rc 108rc 109rc 110rc 112rc 113rc 114rc 115rc 117rc 118rc 119rc 120rc 122rc 123rc 124rc 125rc 127rc 128rc 129rc 130rc 132rc 133rc 134rc 135rc 137rc 138rc 139rc 140rc 142rc 143rc 144rc 145rc 147rc 148rc 149rc 150rc 152rc 153rc 154rc 155rc 157rc 158rc 159rc 160rc 162rc 163rc 164rc 165rc 167rc 168rc 169rc 170rc 172rc 173rc 174rc 175rc 177rc 178rc 179rc 180rc 182rc 183rc 184rc 185rc 187rc 188rc 189rc 190rc 192rc 193rc 194rc 195rc 197rc 198rc 199rc 200rc 202rc 203rc 204rc 205rc 206rc 207rc 208rc 209rc 210rc 212rc 213rc 214rc 215rc 217rc 218rc 219rc 220rc 222rc 223rc 224rc 225rc 227rc 228rc 229rc 230rc 232rc 233rc 234rc 235rc 237rc 238rc 239rc 240rc 242rc 243rc 244rc 245rc 247rc 248rc 249rc 250rc 252rc 253rc 254rc 255rc 257rc 258rc 259rc 260rc 262rc 263rc 264rc 265rc 267rc 268rc 269rc 270rc 272rc 273rc 274rc 275rc 277rc 278rc 279rc 280rc 282rc 283rc 284rc 285rc 287rc 288rc 289rc 290rc 292rc 293rc 294rc 295rc 297rc 298rc 299rc 300rc 302rc 303rc 304rc 305rc 307rc 308rc 309rc 310rc 312rc 313rc 314rc 315rc 317rc 318rc 319rc 320rc 322rc 323rc 324rc 325rc 327rc 328rc 329rc 330rc 332rc 333rc 334rc 335rc 337rc 338rc 339rc 340rc 342rc 343rc 344rc 345rc 347rc 348rc 349rc 350rc 352rc 353rc 354rc 355rc 357rc 358rc 359rc 360rc 362rc 363rc 364rc 365rc 367rc 371rc 372rc 373rc 374rc 375rc 376rc 378rc 380rc 385rc 386rc 387rc 388rc 389rc 390rc 398rc 401rc 406rc 407rc 427rc 463rc 465rc 660rc 667rc 672rc 673rc 675rc 676rc 678rc 679rc 681rc 683rc 684rc 685rc 686rc 690rc 691rc 692rc 693rc 694rc 695rc 696rc 701rc 702rc 703rc 704rc 718rc 719rc 1074rc 1075rc 1093rc 1094rc 1163rc 1165rc 1166rc 1168rce 1195rce 1197rce 1273rc 1331rc 1349rc 1359rc 1360rc 1539rc 1603rc 1604rc 1605rc 1606rc 1607rc 1608rc 1610rc 1650rc 1675rc 1676rc 1678rc 1679rc 1680rc 1681rc 1696rc 1697rc 1698rc 1699rc 1700rc 1701rc 1702rc 1703rc 1704rc 1707rc 1709rc 1710rc 1712rc 1723rc 1724rc 1741rce 1767rce 1781rce 1813rce 1815rce 1816rce 1818rce 1829rce 1960rc 1961rc 1962rc 1963rc 1964rc 1965rc 1966rc 1967rc 1968rc 1969rc 1970rc 1971rc 1972rc 1974rc 2226re 2273rc 2275rce 2276rce 2278rce 2280rce 2282rce 2289rce 2291rce 2293rce 2297re 2298rce 2299re 2323rce 2324rce 2325rce 2363rce 2567rce 2610rc 2617rce 2649rc 2697rc 2698rc 2699rc 2700rc 2705rc 2716rc 2717rc 2725rc 2726rc 2727rc 2728rc 2729rc 3187rc 3226rc 3227rc 3230rce 3235rc 3360rc 3361rc 3440rc 3503rc 3574rc 3606rc 3619rc 3651rc 3658rc 3683rc 3694rc 3705rc 3771rc 3895rc 4052rc 4282rc 4444rc 4494rc 4705rc 4751rc 4827rc 5135rc 5296rm 5363rm 5588rc 5870rc 6032rc 6073rc 6230rc 6526rc 6768rc 6833rc 7025rc 7408rc 7697rc 8559rc 8634rc 8901rc 9095rc 9132rc 10928rc 11053rc 11453rc 11595rc 11955rm 12127re 12362rc 12466rc 12546rc 13045rc 13399rm 13515rc 13821rc 13852rc 13894rce 13901rce 14285rc 15200re 15201re 15729re 15979rc 15988rm 16011rm 16291rm 16400rm 16470rm 16746rm 16810rc 17054rm 17109rm 17351rm 17480rm 17536rm 17686rm 18020re 18310rm 18332rm 18402rm 18434rc 18442rm 18495rm 18548re 18679rm 18754rc 19076re 20986rc 21802rc 21932rc 22072rc 22170rce 22173rce 22174re 22215re 22287re 22288re 22376rc 22842rc 23951rc 24139rm 24410re 24887rce 24954rc 25049re 25569rc 25799rce 25821rce 25833rc 25967rce 25975rc 25977rce 25978re 26007rc 26009rce 26024rce 26074rce 26142rc 26193rc 26242rce 26325rm 26438rce 26454rm 26608rce 26682rce 26684rce 26726rce 26756rce 26760rce 26767rce 26809re 27027rc 27378rc 27393rc 28586rc 28836rm 29475rc 30047rce 30049rce 30050re 30084rm 30106rm 30108rc 30120rm 30137rm 30150rm 30176rc 30365rm 30675rc 30800rc 31205rc 31229rm 31447rc 31522rc 31747rc 31999rc 32205rc 32213rc 32298rm 32320rc 32955rc 33066rc 33127rm 33139rm 33152re 33153re 33641re 33667rc 33681re 33932rc 34463rc 34764rc 36432rc 37098rc 37327rm 37362rc 37426rm 37558rc 37711rc 38325rc 39116rm 39769rc 39918rc 40554rc 40646rm 40781rm 40783rm 41528rc 41959re 42332re 42463rm 42775rm 42798rm 42883rm 43052rm 43053rm 43054rm 43055rm 43056rm 43057rm 43058rm 43059rm 43060rm 43061rm 43062rm 43063rm 43064rm 43065rm 43066rm 43067rm 43069rm 43070rm 43071rm 43072rm 43073rm 43074rm 43075rm 43076rm 43077rm 43078rm 43079rm 44351rm 44433re 45379rc 46560rc 46721rm 47895rm 48099rm 48169rm 49149re 50318rc 50357rm 51144rc 51377rc 51801rm 52251rc 52283rc 52674rm 53514rc 53589rc 53971rm 54141rm 54437rc 54446rm 54543rm 54588rm 54690rc 54727rm 54804rm 54907rc 54921rc 55328rc 56035rc 56153rc 56476rm 56747rc 57369rm 57437rc 57440rc 57709rc 57778rc 57840re 57976rc 58069rm 58150rc 58533rc 58847rc 58863rc 58895rm 59054rm 59096rm 59258rm 59282rm 59333rm 59501rm 59762rc 60139rm 60176rm 60196rm 60285rm 60324rc 60780rm 60867rc 61218rm 61290rc 61321rm 61466rm 61469rm 61491rm 61610rm 61663rc 61880rm 61983re 62228rc 62363rc 62669re 62911rc 63106rc 63274rc 64263rc 64626rm 64918rm 64974rc 65734rc 66707rm 67083rc 67775rc 68263re 68649re 68899rc 69805re 70299re 70761rm 72632rc 72982re 73039rc 73567rm 73592rm
Это представляет собой большинство процессов на сервере, и я не уверен, как все они могут быть связаны с директорией библиотеки docker? Должно быть, это какая-то путаница, по крайней мере, для меня.
Надеюсь, кто-то сможет помочь мне решить эту проблему! Большое спасибо.
ИЗМЕНЕНИЕ: Я удалил docker перед этим шагом, следуя инструкциям отсюда: удаление docker
Если вы пытаетесь удалить папку docker, сначала необходимо остановить все контейнеры docker.
sudo docker stop $(sudo docker ps -a -q)
После этого вы можете удалить папку.
sudo rm -rf /var/lib/docker
Ответ или решение
Когда вы сталкиваетесь с ошибкой "Device or resource busy" при попытке удалить каталог /var/lib/docker
, это может быть связано с тем, что некоторые процессы все еще используют ресурсы в этом каталоге, даже если команды lsof
и fuser
не отображают активных процессов. Ниже приведены шаги, которые помогут вам разобраться с этой проблемой и успешно удалить каталог:
1. Проверка активных контейнеров и остановка Docker
Прежде чем пытаться удалить каталог Docker, убедитесь, что все контейнеры остановлены. Выполните следующую команду:
sudo docker stop $(sudo docker ps -a -q)
Если Docker уже удалён и команды не работают, этот шаг можно пропустить.
2. Условие использования fuser
Вы отметили использование команды sudo /sbin/fuser -m /var/lib/docker/
, которая показала множество процессов, использующих этот каталог. Эти процессы могут быть контейнерами, которые не были остановлены, или даже Docker daemon, который может продолжать использовать ресурсы.
3. Остановка и отключение Docker daemon
Если вы уверены, что Docker больше не нужен, и хотите удалить его полностью, остановите демон Docker перед продолжением:
sudo systemctl stop docker
Если демон работает в другой сессии или в фоновом режиме, это может блокировать удаление каталога.
4. Проверка выделенных ресурсов
Иногда службы или процессы могут не отражаться в lsof
или fuser
, но продолжать использование ресурсов. Попробуйте перезагрузить сервера:
sudo reboot
После перезагрузки проверьте, продолжают ли процессы использовать каталог /var/lib/docker
.
5. Принудительное удаление каталога
Если все еще не удается удалить каталог, вы можете воспользоваться принудительным способом. Сначала попробуйте вывести список процессов еще раз с помощью:
sudo /sbin/fuser -m /var/lib/docker/
Затем завершите эти процессы, используя:
sudo kill -9 <PID>
Замените <PID>
на номера процессов из вывода команды fuser
.
6. Удаление каталога
После выполнения вышеперечисленных шагов вы должны иметь возможность удалить каталог:
sudo rm -rf /var/lib/docker
7. Дополнительные очистки
Если вы переносите Docker на новом сервере или устанавливаете новую версию, может быть полезно очистить не только каталог, но и дополнительные файлы конфигурации:
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker
Заключение
После выполнения всех этих шагов, вы должны будете успешно удалить каталог /var/lib/docker
. Убедитесь, что вы делаете резервное копирование важных данных перед выполняемыми операциями. Если проблема все равно сохраняется, рассмотрите возможность обращения к документации Docker или сообществу для получения дополнительной помощи.