zqifa的博客

我不管,反正我最萌~

Docker容器挂载主机目录访问出现Permission denied的解决办法

Docker挂载主机目录,访问相应的文件出现Premission denied的权限访问问题

挂载后,查看相应的文件出现如下的提示:

[root@ba471da26d07 soft]# ls
ls: cannot access jdk-8u102-linux-x64.tar.gz: Permission denied
hadoop-2.7.2.tar.gz jdk-8u102-linux-x64.tar.gz

问题原因及解决办法
原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:
1.在运行容器的时候,给容器加特权,及加上 –privileged=true 参数:

docker run -i -t -v /soft:/soft --privileged=true 686672a1d0cc /bin/bash

2.临时关闭selinux:

setenforce 0

3.添加selinux规则,改变要挂载的目录的安全性文本

在网上也找到了这种解决办法,尝试运行如下代码:

chcon -Rt svirt_sandbox_file_t /path/to/volume

不过有时候会遇到:

chcon: failed to change context of ‘/path/to/volume’ to ‘system_u:object_r:svirt_sandbox_file_t:s0’: Operation not supported

或者

chcon: can't apply partial context to unlabeled file

这样的报错,这时候需要运行如下命令:

chcon -h system_u:object_r:xxxx_t:s0 /mnt/xxxx

不过我没有尝试,我使用的是给容器加特权–privileged=true的办法,简单快捷,^_^

作者:zqifa

出处:https://www.l1mn.com

原文地址:https://www.l1mn.com/p/f4yx81.html

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

分类:docker
标签:docker

公告

昵称:zqifa

站龄: 3年10个月

博客持续完善ing,敬请期待...

打滚求打赏(๑ ̄ ̫  ̄๑)

此处弱弱求打赏~~万一有好心人呢~~

支付宝酱

支付宝赞助

微信酱

微信赞助

随笔分类

php(110)

linux(63)

python(44)

web前端(39)

js(35)

服务器(33)

mysql(30)

html(24)

docker(23)

windows(22)

centos(22)

django(20)

前端设计(18)

git(16)

常用软件(14)

数据库(14)

算法(14)

字符编码(13)

编程进阶(13)

笔记(12)

更多

我的标签

php(106)

linux(47)

python(45)

js(34)

mysql(30)

centos(28)

web前端(23)

docker(22)

windows(22)

django(20)

更多

相册

Copyright © zqifa 联系方式:z___qf@163.com