Как удалить смонтированный каталог томов Docker на хосте без прав root

У меня следующая проблема.

Я непреднамеренно смонтировал том Docker на хост-компьютере, на котором у меня нет прав root. Теперь я получаю сообщение об ошибке «Отказано в доступе» при попытке удалить каталог, потому что контейнер Docker был создан с пользователем root по умолчанию.

x@y:~/app/xy$ ls -ld data
drwxr-xr-x 4 root root 4096 Apr  7 16:26 data
x@y:~/app/xy$ rm -rf data
rm: cannot remove 'data/data/binlog.000005': Permission denied
rm: cannot remove 'data/data/undo_002': Permission denied
rm: cannot remove 'data/data/server-key.pem': Permission denied
rm: cannot remove 'data/data/ibdata1': Permission denied
rm: cannot remove 'data/data/client-cert.pem': Permission denied
...
rm: cannot remove 'data/dump/client-key.pem': Permission denied
rm: cannot remove 'data/dump/ca.pem': Permission denied
x@y:~/app/xy$

Информация: этот контейнер Docker был удален.

Я искал решения, но пока не нашел.

Есть ли у вас какие-либо предложения, как я могу решить мою проблему?

С уважением, Мартин

Технически, если вы можете запускать контейнер от имени root, у вас также должны быть разрешения на запуск команд от имени root с помощью sudo. Бессмысленно не предоставлять привилегии суперпользователя, пока вы можете использовать контейнер для взломать в обход этого ограничения.

The Fool 09.04.2022 13:40

@TheFool Видимо, это возможно.

kerschi 09.04.2022 13:53
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
2
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Зайдите в родительский каталог. Запустите контейнер от имени пользователя root и удалите каталог

cd ~/app/xy
docker run --rm -v $(pwd):/app -w /app alpine rm -rf data

См. это, если вы хотите убедить кого-то, что они также могут дать вам root на хосте: https://docs.docker.com/engine/security/#docker-daemon-attack-surface. Конечно, это может иметь неприятные последствия, и они лишат вас привилегий докера :)

Другие вопросы по теме