問題
使用docker將容器的某個文件夾掛載在宿主機時,有時候啟動容器會發(fā)現(xiàn)報錯:…cannot open File或者cannot open directory ‘.’: Permission denied。
又或者掛載成功后,發(fā)現(xiàn)宿主機這個文件并沒有數(shù)據(jù),又或者容器的配置文件不在官方說的路徑,又或者進入容器內(nèi)部時,在掛載的那個文件下創(chuàng)建文件會提示:cannot open directory ‘.’: Permission denied。
解決方法
以上問題都屬于 容器對掛載目錄無法讀寫!
即使啟動容器時指定-u 0
,這個也就是讓容器以root身份運行,那么容器對自身的讀寫權(quán)限是全部擁有了,可是它是運行在docker中,而docker是運行在Linux等操作系統(tǒng)中,所以呢,當(dāng)掛載文件時,容器反過來對宿主機的文件沒有操作權(quán)限或者說寫的權(quán)限,因此提示cannot open file等信息。
原因是CentOS7中的安全模塊selinux把權(quán)限禁掉了,
有以下幾種方式解決掛載的目錄沒有權(quán)限的問題:文章來源:http://www.zghlxwxcb.cn/news/detail-774936.html
1.在運行容器的時候,給容器加特權(quán),及加上 --privileged=true
參數(shù):docker run -i -t -v /soft:/soft --privileged=true 637fe9ea94f0 /bin/bash
2.臨時關(guān)閉selinux:setenforce 0
3.添加selinux規(guī)則,改變要掛載的目錄的安全性文本.文章來源地址http://www.zghlxwxcb.cn/news/detail-774936.html
到了這里,關(guān)于【Docker】docker掛載的目錄無法讀寫(cannot open directory ‘.‘: Permission denied)或者cannot open File的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!