Мой dockerd (CentOS7: 17.12.0-ce, build 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/#user-namespace-known-limitations