gpt4 book ai didi

启用了 selinux 的 Docker - 不允许在/usr 中重新标记内容

转载 作者:行者123 更新时间:2023-12-02 18:03:47 24 4
gpt4 key购买 nike

我在 Centos7 上安装了 Docker,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

最佳答案

我最近有一个类似的(尽管不同的问题),我找到了 Juan 的 SELinux and docker notes有帮助。

我在找到强调以下几点的文档时遇到了麻烦,但我记得看到它并且能够通过接受它作为事实来解决我的问题。如果/当我再次偶然发现它时,我会更新它;并非所有内容 /usr/etc将授予您在 SELinux 中的写访问权限。至少不是在 Docker 的上下文中。

您可以访问 /etc/usr SELinux 上下文中的目录,但您无法在任何地方获得写入,因此 zZ当从这些位置启动带有卷挂载的 docker 容器时,有时会导致您无法标记问题。但是,如果您在其他地方有 SELinux 保护的文件,例如在用户主目录中,您可以让 Docker 适本地重新标记这些文件——也就是说,您可以使用 z 写入那些受 SELinux 保护的文件/目录。或 Z标志。

如果您需要在/usr内写信或 /etc目录并获得无法重新标记警报,--privileged标志或 --security-opt label:disable 标志应该代替 z句法。这将允许您拥有写访问权限,但您需要删除 z从您的卷挂载,因为 Docker 仍然会给您带来无法重新标记的声明。

注意,你也可以调用 privileged在 docker-compose.yml 中通过 privileged: true对于给定的服务

关于启用了 selinux 的 Docker - 不允许在/usr 中重新标记内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com