這篇文章將為大家詳細講解有關docker掛載的目錄無法讀寫怎么辦,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
使用下面的命令可以創建一個容器并且把本地的/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掛載文件夾后不能訪問,沒有權限
例如:
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)
文件夾就可以進行讀寫了。但是重啟后需要重新執行上述命令。
關于“docker掛載的目錄無法讀寫怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。