docker v 不起作用怎么辦

docker v不起作用的解決辦法:1、在運行容器的時候,給容器加特權;2、臨時關閉selinux;3、添加selinux規則,將要掛載的目錄添加到白名單。

docker v 不起作用怎么辦

本文操作環境:ubuntu 18.04系統、Docker 20.10.11版、Dell G3電腦。

docker v 不起作用怎么辦?

關于docker -v 掛載后服務無法啟動問題

最近在學習docker, 做了一個簡單的nginx鏡像。
由于需要做成一個可玩的nginx。所以需要把容器內的配置文件在宿主機上進行掛載方便操作。
搞了一段時間,發現docker run 加了-v 屬性后。服務就會啟動不起來。
docker 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 v 不起作用怎么辦

推薦學習:《Docker視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享