【问题标题】:Docker Volume Permissions with Apache httpd.conf file带有 Apache httpd.conf 文件的 Docker 卷权限
【发布时间】:2019-11-30 14:15:24
【问题描述】:

致力于学习 linux、Docker 和 Docker Volumes。我想启动一个 httpd 容器,该容器在我的本地机器上引用 httpd.conf 文件,其中包含代理和负载平衡代码,并加载了正确的模块。我已经手动弄清楚了,但现在我想尝试使用一个卷来简化这个过程。

我的问题是尝试运行容器时出现权限错误。我在 VM 上使用 CentOS 7,当我尝试启动容器时,我得到了一个 SELinux Alert。我相信这是一个权限问题,我已经更改了本地计算机上的权限,以便任何人都可以访问目录和 httpd.conf 文件,但我相信实际问题出在 httpd 容器权限内。

如何让音量正常工作?如果我在这里的内容太模糊,请告诉我需要提供哪些其他信息,仍在学习 linux 和 docker,因此不确定诊断此问题还需要什么。

【问题讨论】:

    标签: linux docker permissions docker-volume


    【解决方案1】:

    根据 Docker 参考 manual,您可以在 mount 参数中添加一个附加选项,该选项将 SELinux 标签修改为要挂载的主机文件/目录。

    因此,您的卷安装参数将来自以下内容:

    -v /folder/to/mount:/directory/in/container
    

    收件人:

    -v /folder/to/mount:/directory/in/container:z
    

    完整的命令行示例:

    docker run -d --name my-httpd-cont -ti -v "$(pwd)"/httpd.conf:conf/httpd.conf:z httpd:latest
    

    在学习 Linux 时,您可以关闭 SELinux,或将其置于允许模式,该模式将记录警告,但不会对警告采取行动。这可以通过运行以下命令来完成。

    setenforce 0
    

    要完全关闭它,请手动编辑 /etc/selinux/config 文件并重新启动服务器。

    【讨论】:

    • 这行得通,我非常感谢您的回复!现在要多看一下参考手册。
    猜你喜欢
    • 2019-05-08
    • 2021-01-07
    • 2015-10-25
    • 2019-12-26
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 2020-08-07
    • 2012-09-11
    相关资源
    最近更新 更多