Ошибки прав доступа даже при запуске Docker-контейнеров с использованием --cap-add или --security-opt

Я пытаюсь установить системное время внутри док-контейнера¹.

Я подумал, что для достижения этого мне просто нужно добавить возможность SYS_TIME:

$ docker run --cap-add SYS_TIME -it ubuntu:16.04 /bin/bash
root@50007999ec5e:/# date --set "+2 hours"
date: cannot set date: Operation not permitted
Thu Jan 1 2:00:00 UTC 1970

К сожалению, это не работает. В поисках похожих ошибок я обнаружил предположения, что, возможно, AppArmor блокирует системный вызов, поэтому я попытался добавить --security-opt apparmor:unconfined, но, увы, безуспешно:

$ docker run --security-opt apparmor:unconfined --cap-add SYS_TIME -it ubuntu:16.04 /bin/bash
root@c4d923009bab:/# date --set "+2 hours"
date: cannot set date: Operation not permitted
Thu Jan 1 2:00:00 UTC 1970

Что должно означать, что AppArmor не является здесь виноват.

Очевидно, что запуск контейнера с использованием --privileged работает:

$ docker run --privileged -it ubuntu:16.04 /bin/bash
root@35ef33342149:/# date --set "+2 hours"
Thu Jan 1 2:00:00 UTC 1970

Но весь смысл того, что я пытаюсь сделать, - это экспериментировать с опциями и возможностями безопасности докера. Я что-то здесь упускаю? Можете ли вы предложить, как отладить и исправить эту проблему?


¹ Да. Я знаю, что системное время не является ресурсом пространства имен.

0
задан 16 January 2018 в 14:28

0 ответов

Другие вопросы по тегам:

Похожие вопросы: