Docker Apache httpd.conf 文件的卷权限
Docker Volume Permissions with Apache httpd.conf file
正在学习 linux、Docker 和 Docker 卷。我想启动一个 httpd 容器,该容器引用我本地计算机上的 httpd.conf
文件,其中包含代理和负载平衡代码,并加载了正确的模块。我已经手动弄清楚了,但现在我想尝试使用一个卷来简化这个过程。
我的问题是在尝试 运行 容器时出现权限错误。我在 VM 上使用 CentOS 7,当我尝试启动容器时收到 SELinux Alert
。我认为这是一个权限问题,我已经更改了本地计算机的权限,以便任何人都可以访问目录和 httpd.conf
文件,但我认为实际问题出在 httpd 容器权限内。
如何让卷起作用?如果我这里的内容太模糊,请让我知道要提供哪些其他信息,仍在学习 linux 和 docker,所以不确定诊断此问题还需要什么。
根据 Docker 参考 manual,您可以向挂载参数添加一个附加选项,该选项修改正在挂载的主机 file/directory 的 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 文件并重新启动服务器。
正在学习 linux、Docker 和 Docker 卷。我想启动一个 httpd 容器,该容器引用我本地计算机上的 httpd.conf
文件,其中包含代理和负载平衡代码,并加载了正确的模块。我已经手动弄清楚了,但现在我想尝试使用一个卷来简化这个过程。
我的问题是在尝试 运行 容器时出现权限错误。我在 VM 上使用 CentOS 7,当我尝试启动容器时收到 SELinux Alert
。我认为这是一个权限问题,我已经更改了本地计算机的权限,以便任何人都可以访问目录和 httpd.conf
文件,但我认为实际问题出在 httpd 容器权限内。
如何让卷起作用?如果我这里的内容太模糊,请让我知道要提供哪些其他信息,仍在学习 linux 和 docker,所以不确定诊断此问题还需要什么。
根据 Docker 参考 manual,您可以向挂载参数添加一个附加选项,该选项修改正在挂载的主机 file/directory 的 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 文件并重新启动服务器。