docker v不起作用的解決辦法:1、在運行容器的時候,給容器加特權;2、臨時關閉selinux;3、添加selinux規則,將要掛載的目錄添加到白名單。
本文操作環境:ubuntu 18.04系統、Docker 20.10.11版、Dell G3電腦。
docker v 不起作用怎么辦?
關于docker -v 掛載后服務無法啟動問題
最近在學習docker, 做了一個簡單的nginx鏡像。
由于需要做成一個可玩的nginx。所以需要把容器內的配置文件在宿主機上進行掛載方便操作。
搞了一段時間,發現docker run 加了-v 屬性后。服務就會啟動不起來。
困擾了一段時間,去看了一下掛載這個東西。
終于找到了問題的原因,這里做一下記錄。原因是CentOS7中的安全模塊selinux把權限禁掉了,至少有以下三種方式解決掛載的目錄沒有權限的問題:
1,在運行容器的時候,給容器加特權:
示例:docker run -i -t –privileged=true -v /home/docs:/src waterchestnut/nodejs:0.12.0
2,臨時關閉selinux:
示例:su -c
之后執行:
docker?run?-i?-t?-v?/home/docs:/src?waterchestnut/nodejs:0.12.0
注意:之后要記得重新開啟selinux,命令:su -c “setenforce 1”
3,添加selinux規則,將要掛載的目錄添加到白名單:
示例:chcon -Rt svirt_sandbox_file_t /home/docs
之后執行:
docker?run?-i?-t?-v?/home/docs:/src?waterchestnut/nodejs:0.12.0
有了掛載權限后,就能啟動成功了。
推薦學習:《Docker視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦