Как установить -- bind внутри контейнера Docker?
у меня есть этот контейнер на основе debian:jessie
(но это не очень актуально, так как у меня была такая же проблема с alpine:3.3
). Я добираюсь до точки, где мне нужно
mount --bind /htdocs/www /home/user/example.com/www
и я
mount: permission denied
Я не могу ничего найти в любом журнале ядра, и -vvv
ничего интересного не дает. Я, очевидно, могу сделать это на хосте (с любой другой парой поддерева/узла). В моем примере выше /htdocs / www является точкой монтирования Тома Docker, но он не выглядит так, как будто он важность, как я не могу mount --bind
любая пара поддерева / узла внутри контейнера.
1 ответов
при использовании mount
системный вызов, вам нужен CAP_SYS_ADMIN
возможности. По умолчанию настройки сбрасывает все возможности при создании контейнера (это означает, что даже как root, вам не разрешено делать все). Вижу mount (2) man page для получения дополнительной информации.
вы можете начать свой контейнер с --cap-add=SYS_ADMIN
флаг для добавления этой возможности в контейнер:
root@host > docker run --rm -it --cap-add=SYS_ADMIN debian:jessie
root@ee0b1d5fe546:/# mkdir /mnt/test
root@ee0b1d5fe546:/# mount --bind /home /mnt/test/
root@ee0b1d5fe546:/#
используйте это с осторожностью. Не запускайте ненадежные программное обеспечение в привилегированном контейнере.