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影片教學》
以上是docker v 不起作用怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!