使用下面的命令可以創(chuàng)建一個(gè)容器并且把本地的/home/dock/Downloads目錄掛載到容器中的/usr/Downloads中
[root@docker ~]# docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu /bin/bash
在Centos上創(chuàng)建完后,會出現(xiàn)如下問題
root@637fe9ea94f0:/usr/Downloads# ls
ls: cannot open directory '.': Permission denied
解決辦法:
原因是CentOS7中的安全模塊selinux把權(quán)限禁掉了,
有以下幾種方式解決掛載的目錄沒有權(quán)限的問題:
1.在運(yùn)行容器的時(shí)候,給容器加特權(quán),及加上 --privileged=true 參數(shù):
docker run -i -t -v /soft:/soft --privileged=true 637fe9ea94f0 /bin/bash
2.臨時(shí)關(guān)閉selinux:
3.添加selinux規(guī)則,改變要掛載的目錄的安全性文本
補(bǔ)充:docker掛載文件夾后不能訪問,沒有權(quán)限
輸入docker run 后掛載的文件夾不能訪問,沒有權(quán)限
例如:
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
將主機(jī)的workspace文件夾與容器的/root/workspace文件夾相掛載,但是在主機(jī)上不能向workspace文件夾中寫入數(shù)據(jù)。因?yàn)榇藭r(shí)文件夾的擁有者為root。
可以執(zhí)行命令:
sudo chown -R $USER 文件夾位置(/workspace)
文件夾就可以進(jìn)行讀寫了。但是重啟后需要重新執(zhí)行上述命令。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。