【问题标题】:Why is File Mounted on Container via docker-compose not Accessible?为什么通过 docker-compose 在容器上挂载的文件不可访问?
【发布时间】:2020-06-16 11:18:40
【问题描述】:

在我的 docker-compose 文件中,我尝试将文件从主机挂载到 docker 容器中。

docker-compose 文件我有这样的东西:

version "2"

services:
    myservice:
        image:  images/previmage:1.0.0
        volumes:
            - /opt/files/aaa.conf:/aaa.conf

服务启动后,我从宿主机使用docker查看容器根目录下的内容:

sudo docker container exec myservice_1 ls /

对该 aaa.conf 条目的 ls 命令的结果显示它看起来就在那里,但权限不是我所期望的:

drwxr-xr-x.  2 root   root     6 Apr 11 2018 opt
-??????????  ? ?      ?        ?           ? aaa.conf
ls:  cannot access /aaa.conf:  Permission denied

同样,如果我尝试其他命令,例如“cat aaa.conf”,我会收到 Permission denied。

我了解需要在主机端设置文件的权限。 在主机上,我同时设置了 755 和 777 的权限,但我仍然收到 Permission denied。

这是预期的行为吗?


编辑 [在 AWS/EC2 上运行]

sudo docker container exec myservice_1 cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

sudo docker container exec myservice_1 id -u
33016

【问题讨论】:

  • 你的主机操作系统是什么?
  • 主机是 CentOS 7
  • 请分享以下命令的输出:docker container exec myservice_1 cat /etc/os-releasedocker container exec myservice_1 id -u .. 或者更好的是,分享您用来尝试重现问题的真实图像。
  • 我将这些命令的输出添加到问题的正文中。

标签: docker docker-compose volumes


【解决方案1】:

我遇到了同样的问题,这是 SELinux (Check this post)

为特定容器禁用 SELinux

您可以通过将 --security-opt label:disable 添加到您的 docker run 命令来禁用特定容器的 SELinux:

docker container run --security-opt label:disable myservice_1

添加 SELinux 规则(推荐)

根据this post,您也可以使用此命令启用对文件的访问

chcon -Rt svirt_sandbox_file_t /path/to/volume

完全禁用 SELinux!

不推荐,但也可以:

su -c "setenforce 0"

【讨论】:

  • 是的。这对我有用。我正在使用 docker-compose 来启动容器,但在那里可以使用相同的选项。感谢您的回复。
猜你喜欢
  • 2018-05-31
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 2017-11-26
  • 2020-11-17
  • 1970-01-01
相关资源
最近更新 更多