解决docker挂载的目录无法读写问题
程序员文章站
2022-06-15 15:57:24
使用下面的命令可以创建一个容器并且把本地的/home/dock/downloads目录挂载到容器中的/usr/downloads中[root@docker ~]# docker run -it -v...
使用下面的命令可以创建一个容器并且把本地的/home/dock/downloads目录挂载到容器中的/usr/downloads中
[root@docker ~]# docker run -it -v /home/dock/downloads:/usr/downloads ubuntu /bin/bash
在centos上创建完后,会出现如下问题
root@637fe9ea94f0:/usr/downloads# ls ls: cannot open directory '.': permission denied
解决办法:
原因是centos7中的安全模块selinux把权限禁掉了,
有以下几种方式解决挂载的目录没有权限的问题:
1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数:
docker run -i -t -v /soft:/soft --privileged=true 637fe9ea94f0 /bin/bash
2.临时关闭selinux:
setenforce 0
3.添加selinux规则,改变要挂载的目录的安全性文本
补充:docker挂载文件夹后不能访问,没有权限
输入docker run 后挂载的文件夹不能访问,没有权限
例如:
sudo nvidia-docker run -p 8090:8888 -p 8091:80 -p 8092:6666 --name=pytorch0.4 -v ~/workspace:/root/workspace -i --shm-size 31g -t dsksd/pytorch:0.4.1 /bin/bash
将主机的workspace文件夹与容器的/root/workspace文件夹相挂载,但是在主机上不能向workspace文件夹中写入数据。因为此时文件夹的拥有者为root。
可以执行命令:
sudo chown -r $user 文件夹位置(/workspace)
文件夹就可以进行读写了。但是重启后需要重新执行上述命令。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
上一篇: 存档_CmakeList的一些常见配置
推荐阅读
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
-
Docker 无法停止或删除容器服务问题的解决方案
-
解决docker日志挂载的问题
-
Ubuntu Apahce2.4下无法访问JS目录的问题解决
-
关于Docker容器内部无法解析域名问题的解决
-
docker使用storage出现Exit导致文件无法上传服务器的问题及解决方案
-
Docker容器无法被stop or kill问题的解决方法
-
Docker解决终端无法输入中文的问题
-
解决IDEA误删out目录下的文件导致404无法访问的问题
-
docker windows10 共享目录挂载失败的解决方案