由于需要做成一個可玩的nginx。所以需要把容器內(nèi)的配置文件在宿主機上進行掛載方便操作。
搞了一段時間,發(fā)現(xiàn)docker run 加了-v 屬性后。服務(wù)就會啟動不起來。
困擾了一段時間,去看了一下掛載這個東西。
終于找到了問題的原因,這里做一下記錄。原因是CentOS7中的安全模塊selinux把權(quán)限禁掉了,至少有以下三種方式解決掛載的目錄沒有權(quán)限的問題:
1,在運行容器的時候,給容器加特權(quán):
示例:docker run -i -t –privileged=true -v /home/docs:/src waterchestnut/nodejs:0.12.0
2,臨時關(guān)閉selinux:
示例:su -c
之后執(zhí)行:
docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0
注意:之后要記得重新開啟selinux,命令:su -c “setenforce 1”
3,添加selinux規(guī)則,將要掛載的目錄添加到白名單:
示例:chcon -Rt svirt_sandbox_file_t /home/docs
之后執(zhí)行:
docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0
有了掛載權(quán)限后,就能啟動成功了。
推薦學(xué)習(xí):《Docker視頻教程》
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn