У меня есть контейнер Busybox, работающий в Docker на виртуальной машине Ubuntu. Я хотел увеличить shmem этого контейнера, поэтому запустил команду mount -o remount,size=128m /dev/shm
внутри контейнера. Не удалось выполнить команду из-за ошибок разрешений. Пользователь отображается как root
, но команда не выполняется.
~$ docker run -it busybox sh
/ # df -h /dev/shm
Filesystem Size Used Available Use% Mounted on
shm 64.0M 0 64.0M 0% /dev/shm
/ # mount -o remount,size=128m /dev/shm
mount: permission denied (are you root?)
/ # whoami
root
Затем я запускал сам контейнер как root, но это тоже не имело никакого значения.
$ docker run -u root -it busybox sh
/ # whoami
root
/ # df -h /dev/shm
Filesystem Size Used Available Use% Mounted on
shm 64.0M 0 64.0M 0% /dev/shm
/ # mount -o remount,size=256m /dev/shm
mount: permission denied (are you root?)
/ # su -c "mount -o remount,size=256m /dev/shm"
mount: permission denied (are you root?)
/ #
Затем я запустил контейнер с опцией --privileged
. Только после этого я смог запустить перемонтировать shmem внутри контейнера. несмотря на то, что юзер root? Это потому, что у контейнера не было привилегированного доступа?
Как узнать, какие операции требуют привилегированного доступа, а какие нет? Есть ли способ перемонтировать shmem внутри контейнер без запуска в привилегированном режиме?