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

Docker не может получить доступ к томам

Я установил свежий Fedora Server 22. Во время установки я выбрал вариант предварительной установки Docker. Я активировал Docker с помощью Cockpit и установил новый контейнер в командной строке:

# docker run -d -h plex --name="plex" -v /etc/docker/plex:/config -v /tank:/data -p 32400:32400 timhaak/plex

При попытке запустить его получаю ошибку:

+ GROUP=plextmp
+ mkdir -p /config/logs/supervisor
mkdir: cannot create directory ‘/config/logs’: Permission denied

Я проверил детали контейнера:

...
"Volumes": {
    "/config": "/etc/docker/plex",
    "/data": "/tank"
...
"VolumesRW": {
    "/config": true,
    "/data": true
...

и каталог существует:

# file /etc/docker/plex
/etc/docker/plex: directory

вроде все нормально.

Сначала я подумал, что проблема в самом контейнере, поэтому попробовал и другие контейнеры. Я сталкиваюсь с одной и той же проблемой с каждым из них. Они не могут создавать папки или файлы (иногда даже не читать их). В документации докера («Управление данными в контейнерах») есть очень простой пример создания нового контейнера, который просто открывает оболочку и монтирует том с хоста:

# docker run --rm -it -v /etc/docker/test:/vol ubuntu /bin/bash

Попытка коснуться файла в / test приводит к ошибке отказа в разрешении.

Что мне не хватает?

В моем конкретном случае проблема была в SELinux. После установки «разрешающего» я ​​смог использовать контейнеры.

(может быть не лучшим решением, но работает, пока я не настрою разрешения SELinux соответствующим образом)

Обновление: вот короткое сообщение в блоге Дэна Уолша, указывающее на возможные проблемы, которые могут возникнуть при использовании Docker Volumes и SELinux:

http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/