Docker 无法访问卷

Docker 无法访问卷

我安装了全新的 Fedora Server 22。在安装过程中,我选择了预安装 Docker 的选项。我使用 Cockpit 激活了 Docker,并在命令行上安装了一个新的容器:

# 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 文档(“管理容器中的数据”)中,有一个非常简单的示例,说明如何创建一个新容器,只需打开一个 shell 并从主机挂载一个卷即可:

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

尝试接触 /test 中的文件会导致权限被拒绝错误。

我是否遗漏了什么?

答案1

在我的具体案例中,问题出在 SELinux 上。将其设置为“permissive”后,我就能够使用容器了。

(可能不是最好的解决方案,但在我相应地设置 SELinux 权限之前它是有效的)

更新:这是 Dan Walsh 的一篇简短博客文章,指出了使用 Docker Volumes 和 SELinux 可能出现的问题:

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

相关内容