docker:无法在挂载目录中使用 ls

Posted

技术标签:

【中文标题】docker:无法在挂载目录中使用 ls【英文标题】:docker: Can't use ls in mount directory 【发布时间】:2015-11-11 01:30:14 【问题描述】:

我用 docker run -it -v $PWD/website:/var/www/html/website gerbawn/nginx /bin/bash 启动一个 docker 容器。但是我不能使用 ls 来查看/var/www/html/website 目录。

我有将目录更改为 777 的权限,但没有用。

【问题讨论】:

***.com/questions/24288616/… 有帮助吗?还是***.com/a/30101747/6309? 谢谢,我知道了。因为selinux 【参考方案1】:

我提到的第一个链接“Permission denied on accessing host directory in docker”似乎是根本原因: 将正确的 SELinux 策略类型分配给主机目录

chcon -Rt svirt_sandbox_file_t host_dir

(host_dir 是主机系统上挂载到容器的目录的路径。)

其实since docker 1.7,你应该可以做到:

docker run -it -v $PWD/website:/var/www/html/website:z gerbawn/nginx /bin/bash
                                                    ^^
# or:
docker run -it -v $PWD/website:/var/www/html/website:Z gerbawn/nginx /bin/bash
                                                    ^^

【讨论】:

以上是关于docker:无法在挂载目录中使用 ls的主要内容,如果未能解决你的问题,请参考以下文章

日更第23日: 容器安全之为docker挂载单独数据目录

docker 启动 jenkins 挂载目录权限问题 Permission denied

在没有 noexec 选项的情况下将卷挂载到 docker 容器中

docker 数据管理

Docker容器数据卷挂载使用

docker挂载文件后变成目录