bind mount /proc в контейнере Docker с включенными пространствами имен пользователей
Мой dockerd (CentOS7: 17.12.0-ce, сборка c97c6d6) работает с включенными пространствами имен пользователей для лучшей изоляции.
Теперь я создаю образ, который должен считываться для целей мониторинга также из / proc ядра. Таким образом я попытался смонтировать / proc на / host / proc в контейнере
host> docker run --network=host --userns=host --pid=host --privileged -v /proc:/host/proc:ro --name mycontainer my/container20180204
и bind-mount во время запуска контейнера через представление пространства имен proc для контейнеров
docker> mount -o bind /host/proc /proc
Однако, при событии с пространством имен пользователя хоста, корневой процесс контейнера, очевидно, выполняется в отображении пространства имен пользователя dockerd, так как корень контейнера не может связать mount / proc
mount: only root can use "--options" option (effective UID is 100000)
Запуск от имени непривилегированного пользователя не работает, так как он пытается смонтировать его как настоящую файловую систему (?!?) Из слоев
/var/lib/docker/100000.100000/btrfs/subvolumes/${SHA256}/proc\\\\\\\" cannot be mounted because it is located inside \\\\\\\"/proc\\\\\\\"\\\"\"": unknown.
Итак, я боюсь, что ограничения пространства имен пользователя хороши и не могут быть обойдены...? https://docs.docker.com/engine/security/userns-remap/