码迷,mamicode.com
首页 > 其他好文 > 详细

Docker使用-v挂载主机目录到容器后出现Permission denied

时间:2016-08-07 15:28:32      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

1. 在挂载主机目录的到容器后,操作挂载的目录出现权限问题:

# 将主机上的/data/share/master目录挂载到容器的/opt/share目录
docker run -it --name=master --hostname=master -v /data/share/master:/opt/share centos-hadoop /bin/bash
[root@master share]# pwd  #进入挂载目录
/opt/share
[root@master share]# touch hello  #建立新文件  
touch: cannot touch hello: Permission denied  # 无权建立文件

2. 问题原因及解决

  原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:

  2.1 在运行容器的时候,给容器加特权,也就是加上   --privileged=true 参数:

  如下运行容器则无此问题:

docker run -it --name=master --hostname=master -v /data/share/master:/opt/share --privileged=true   centos-hadoop /bin/bash

  2.2 临时关闭selinux:

     setenforce 0

  2.3  添加selinux规则,将要挂载的目录添加到白名单

    暂时不会,正在学习中

  

Docker使用-v挂载主机目录到容器后出现Permission denied

标签:

原文地址:http://www.cnblogs.com/linux-wangkun/p/5746107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!