Докер с включенным selinux - переназначение контента в / usr запрещено - PullRequest
1 голос
/ 15 октября 2019

У меня Docker на Centos7 с selinux, настроенным на принудительное выполнение на хосте, и демон Docker запускается с флагом --selinux-enabled.

Когда я пытаюсь выполнить следующую команду

docker run -it   -v /usr/local/xya/log:/usr/local/xya/log:z centos/systemd touch /usr/local/xya/log/test 

Я получаю следующую ошибку:

docker: Error response from daemon: error setting label on mount source '/usr/local/xya/log': relabeling content in /usr is not allowed.

Согласно некоторым статьям (http://jaormx.github.io/2018/selinux-and-docker-notes/), флаг 'z' должен сделать доступным для записи / usr; не уверен, что я что-то упустил.

Docker версия 19.03.3, сборка a872fc2f86 Версия CentOS: CentOS Linux выпуск 7.5.1804

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

У меня недавно была похожая (хотя и другая проблема) заметка SELinux и заметки Хуана , которая мне показалась полезной.

У меня проблемы с поиском документации, в которой подчеркивается следующий момент, ноЯ помню, как видел это и смог обойти мои проблемы, приняв это как правду. Я обновлю это, если / когда я наткнусь через это снова;Не все в пределах /usr или /etc предоставят вам доступ для записи в SELinux. По крайней мере, не в контексте Docker.

Вы можете получить доступ к каталогам /etc и /usr в контексте SELinux, но вы не можете получить запись везде, поэтому z и Z иногда будут давать вамневозможно пометить проблемы при раскрутке док-контейнеров с монтируемыми томами из этих мест. Однако, если у вас есть файлы, защищенные SELinux, где-то еще, например, в домашнем каталоге пользователя, вы сможете сделать так, чтобы Docker пометил эти файлы соответствующим образом - то есть вы сможете записывать в эти файлы / каталоги, защищенные SELinux, с помощью z или Z flags.

Если вам нужно написать в каталогах /usr или /etc и получить предупреждение о невозможности перемаркировки, флаг --privileged или --security-opt label:disable*Флаг 1022 * должен быть вместо синтаксиса z. Это позволит вам иметь доступ для записи, но вам нужно будет удалить z из монтирования тома, так как Docker все равно даст вам неспособность переосмыслить утверждение.

обратите внимание, вы также можете вызвать privileged в docker-compose.yml через privileged: true для данной службы

0 голосов
/ 15 октября 2019

изображение не имеет прав на редактирование или создание новых файлов в папке usr, из Документов вы можете запустить контейнер с параметром --privileged

...