2014-07-21 1 views
0

Я пытаюсь получить very basic steps часть установки в рабочем докере, и я столкнулся с этой проблемой на Fedora 20:`Докер запустить убунт: 14,04/bin/echo` производит ошибку SELinux на Fedora 20

$ sudo docker run ubuntu:14.04 /bin/echo 
/bin/echo: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory 

В в то же время в SELinux Alert Browser записываются два предупреждения:

  • SELinux предотвращает/bin/echo из доступа на чтение в файле lnk_file. (По-видимому, имя файла равно «».)
  • SELinux предотвращает/bin/echo от доступа для чтения в файле. (Пустое имя файла снова.)

Что я делаю неправильно, или это ошибка?

$ sudo docker version 
Client version: 1.0.0 
Client API version: 1.12 
Go version (client): go1.2.2 
Git commit (client): 63fe64c/1.0.0 
Server version: 1.0.0 
Server API version: 1.12 
Go version (server): go1.2.2 
Git commit (server): 63fe64c/1.0.0 

$ yum info docker-io 
Name  : docker-io 
Arch  : x86_64 
Version  : 1.0.0 
Release  : 6.fc20 

$ yum info selinux-policy 
Name  : selinux-policy 
Arch  : noarch 
Version  : 3.12.1 
Release  : 177.fc20 

ответ

2

Если вы используете Btrfs в качестве файловой системы, вы не можете использовать --selinux с поддержкой докера (--selinux с включенным по умолчанию из Докер-Io f20 пакет)

от RHEL7 Docs 5.2. Secure Containers with SELinux (примечание внизу) «Обратите внимание, что в настоящее время не представляется возможным запускать контейнеры с SELinux включена на B-дерева файловой системы (Btrfs)»

также упоминается в Docker and SELinux by Daniel Walsh from Red Hat при значении примерно 35 мин.

Несколько моих тестов подтверждают это. Сбой на Btrfs, но монтировании файловой системы ext4 в/вар/Lib/грузчиком, перезапуск грузчиком и работает

docker run ubuntu:14.04 /bin/echo foo 

работает без ошибок.

1

В этой презентации: http://www.slideshare.net/d0cent/docker-rhel, на слайде 13 вы можете увидеть, что вы должны позволить, чтобы докер работать с SELinux на Fedora 20.

основном получают политику от https://git.fedorahosted.org/cgit/selinux-policy.git/tree/docker.te?h=f20-contrib

В что политика:

seinfo -t -x | grep docker 
sesearch -A -s docker_t 

или просто распаковать docker.pp с semodule_unpackage

Для получения дополнительной информации, слайд предполагает, man docker_selinux

+0

Можете ли вы предоставить немного больше информации о фонах? Что мне делать с файлом 'docker.te' от fedorahosted? Что вы имеете в виду «В этой политике [...]»? У меня нет ни 'semodule_unpackage', ни' seinfo', ни исполняемого файла 'sesearch' на моем пути, ни man-страницы для' docker_selinux'. – Perseids

+0

Я, конечно, мог бы, хотя позвольте мне задать вам еще один вопрос? Используете ли вы/поддерживаете SELinux или просто устанавливаете по умолчанию и скорее отключите его, чем настроили? В целом, вот основной справочник SELinux: http://docs.fedoraproject.org/en-US/Fedora/12/html/Security-Enhanced_Linux/chap-Security-Enhanced_Linux-Working_with_SELinux.html, вот очень хорошее видео, объясняющее что такое SELinux и как с ним работать: https://www.youtube.com/watch?v=MxjenQ31b70 – favoretti

+0

В противном случае вы можете просто переключить SELinux в режим без соблюдения следующих правил: http: //www.crypt .gen.nz/selinux/disable_selinux.html # DIS2, но подумайте, что должен сказать этот веб-сайт: http://stopdisablingselinux.com/ – favoretti