Назад | Перейти на главную страницу

привязать mount / proc в контейнере Docker с включенными пространствами имен пользователей

Мой 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